WO2015134987A1 - Digital thermostat, power outlet, and light dimmer - Google Patents

Digital thermostat, power outlet, and light dimmer Download PDF

Info

Publication number
WO2015134987A1
WO2015134987A1 PCT/US2015/019505 US2015019505W WO2015134987A1 WO 2015134987 A1 WO2015134987 A1 WO 2015134987A1 US 2015019505 W US2015019505 W US 2015019505W WO 2015134987 A1 WO2015134987 A1 WO 2015134987A1
Authority
WO
WIPO (PCT)
Prior art keywords
light
user
zone
determining
power
Prior art date
Application number
PCT/US2015/019505
Other languages
French (fr)
Inventor
Randall W. FREI
Jonathan G. BAUER
Original Assignee
Ubiquiti Networks, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ubiquiti Networks, Inc. filed Critical Ubiquiti Networks, Inc.
Publication of WO2015134987A1 publication Critical patent/WO2015134987A1/en

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/30Control or safety arrangements for purposes related to the operation of the system, e.g. for safety or monitoring
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/50Control or safety arrangements characterised by user interfaces or communication
    • F24F11/52Indication arrangements, e.g. displays
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/62Control or safety arrangements characterised by the type of control or by internal processing, e.g. using fuzzy logic, adaptive control or estimation of values
    • F24F11/63Electronic processing
    • F24F11/65Electronic processing for selecting an operating mode
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D23/00Control of temperature
    • G05D23/19Control of temperature characterised by the use of electric means
    • G05D23/1902Control of temperature characterised by the use of electric means characterised by the use of a variable reference value
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F2110/00Control inputs relating to air properties
    • F24F2110/10Temperature

Definitions

  • This disclosure is generally related to home automation. More specifically, this disclosure is related to a network-controllable digital thermostat, power outlet, and light dimmer that can be installed and provisioned to operate in a home automation system.
  • a home automation system enables centralized control of lighting, HVAC (heating, ventilation, and air conditioning), appliances, and other systems, thus providing improved convenience, comfort, energy efficiency, and security.
  • HVAC heating, ventilation, and air conditioning
  • Some automation systems provide a way to automate the control of a device based on timed or environmental factors, such as in an HVAC unit or a sprinkler system.
  • these typical automation systems provide automated control for an individual type of appliance, and the different automation systems do not interface with one another to provide a complete home automation solution.
  • Typical home automation technologies are often implemented using specially designed control and monitor devices that that can be under the control of a third-party service.
  • the surveillance system controller is connected to various specially designed sensors and/or cameras provided by the service provider.
  • the service provider may sell or lease each controller and sensor to the home owner at a premium.
  • the home owner may also need to pay a monthly subscription fee to the service provider to monitor and maintain the surveillance system.
  • installing and using these third-party systems can be a large expense to users that prefer to install, configure, and monitor their own home automation system.
  • One embodiment provides a networked digital thermostat that monitors one or more network-accessible sensors to control a heating and air-conditioning (HVAC) system.
  • HVAC heating and air-conditioning
  • the digital thermostat can select a zone to monitor, and obtains temperature measurements from one or more network-accessible temperature sensors associated with the selected zone. The digital thermostat then adjusts the zone's temperature based on the obtained temperature measurements.
  • One embodiment provides a networked power outlet device that can monitor an energy output from an outlet port.
  • the power outlet device can select an outlet port to monitor, and measures energy output from the port.
  • the system also analyzes triggering conditions for one or more rules to identify a rule triggered by the outlet port' s energy output, and performs the identified rule's action description.
  • One embodiment provides a networked light-dimmer device that comprises a touch-screen interface that accepts touch-screen gestures as input for controlling one or more light fixtures.
  • the light-dimmer device can determine a gesture performed by a user on the touch- screen interface, and determines a target output lighting level based on the gesture.
  • the light-dimmer device then configures an energy level for a target light fixture based on the target output lighting level.
  • FIG. 1A illustrates an exemplary digital thermostat in accordance with an embodiment.
  • FIG. IB illustrates a top surface of an exemplary digital thermostat in accordance with an embodiment.
  • FIG. 1C illustrates a bottom surface of an exemplary digital thermostat in accordance with an embodiment.
  • FIG. 2A illustrates a user interface (UI) display of a digital thermostat in accordance with an embodiment.
  • UI user interface
  • FIG. 2B illustrates a configurable UI display of a digital thermostat in accordance with an embodiment.
  • FIG. 2C illustrates a UI display for adjusting a thermostat temperature setting in accordance with an embodiment.
  • FIG. 3 illustrates a block diagram of an exemplary digital thermostat in accordance with an embodiment.
  • FIG. 4A presents a flow chart illustrating a method for detecting temperature- sensing devices of a computer network in accordance with an embodiment.
  • FIG. 4B presents a flow chart illustrating a method for detecting motion- sensing devices of a computer network in accordance with an embodiment.
  • FIG. 4C presents a flow chart illustrating a method for controlling a heating, ventilation, and air conditioning (HVAC) system in accordance with an embodiment.
  • HVAC heating, ventilation, and air conditioning
  • FIG. 5A illustrates an exemplary power outlet in accordance with an embodiment.
  • FIG. 5B illustrates a side view of an exemplary faceplate in accordance with an embodiment.
  • FIG. 5C illustrates an exemplary power outlet in accordance with an embodiment.
  • FIG. 5D illustrates a side view of an exemplary faceplate in accordance with an embodiment.
  • FIG. 5E illustrates an exemplary power outlet in accordance with an embodiment.
  • FIG. 5F illustrates a side view of an exemplary faceplate in accordance with an embodiment.
  • FIG. 5G illustrates an exemplary power outlet in accordance with an embodiment.
  • FIG. 6 illustrates a block diagram of an exemplary power outlet in accordance with an embodiment.
  • FIG. 7 illustrates an angled view of an exemplary power outlet in accordance with an embodiment.
  • FIG. 8 presents a flow chart illustrating a method for processing a measurement from a power outlet in accordance with an embodiment.
  • FIG. 9 presents a flow chart illustrating a method for initializing a power outlet in accordance with an embodiment.
  • FIG. 10 illustrates an exemplary light dimmer in accordance with an embodiment.
  • FIG. 11 illustrates a block diagram of an exemplary light dimmer in accordance with an embodiment.
  • FIG. 12 illustrates an angled view of an exemplary light dimmer in accordance with an embodiment.
  • FIG. 13 presents a flow chart illustrating a method for processing a user input for adjusting a brightness level in accordance with an embodiment.
  • FIG. 14 presents a flow chart illustrating a method for automatically adjusting an operation mode to accommodate a light fixture in accordance with an embodiment.
  • FIG. 1A illustrates an exemplary digital thermostat 100 in accordance with an embodiment.
  • Digital thermostat 100 can include a front face 102, a cover 104, and capacitive- touch display 106.
  • Front face 102 can be manufactured of a plastic or glass material, to have a black semi-transparent surface with a glossy finish.
  • Cover 104 can be manufactured of a metallic material (e.g., aluminum) with an argent color.
  • a front-facing surface of cover 104 e.g., a surface parallel to front face 102 can be manufactured to have a glossy finish, and a side-facing surface of cover 104 can be manufactured to have a textured finish.
  • Capacitive-touch display 106 can display information to a user, and can include a matrix of capacitive-touch sensors for receiving input from a user.
  • the capacitive-touch sensor can detect an increase in capacitance on the surface of display 102 when a user touches the touch-sensitive sensor.
  • Each capacitive-touch sensor generates an analog voltage which corresponds to the amount of capacitance that was detected on the surface of display 106 over the sensor.
  • Digital thermostat 100 can detect a user input by analyzing information obtained from capacitive-touch display 106.
  • the user input can include any gestures made by the user by touching and/or dragging a finger or stylus on capacitive-touch display 106.
  • the gestures can include a "tap" gesture on a portion of capacitive-touch display 106 (e.g., a touch event to select a display item), and a "swipe" gesture that moves along a surface path of capacitive-touch display 106 (e.g., a drag event to scroll a display item).
  • Digital thermostat 100 can also include a proximity sensor to detect when the user or the user's hand is within a close proximity of capacitive-touch display 106, and generates an analog signal based on the proximity of the detected object to the proximity sensor.
  • the proximity sensor can include an infrared proximity sensor, which emits an infrared signal from an infrared emitter, and generates the analog signal based on an amount of infrared light detected by an infrared detector (e.g., infrared light that reflected off the user's hand).
  • digital thermostat 100 can include a standby mode while the user is not immediately in front of digital thermostat 100.
  • the user interface presented in the stand-by mode may be non-interactive, and displays environmental information and status information for the HVAC system. This user interface can be optimized to allow the user to view the displayed information from a distance.
  • digital thermostat 100 can transition into an interactive mode that presents interactive user- interface elements to the local user.
  • the user- interface elements can allow the user to adjust the target temperature range, a fan setting, or any other configuration settings for the HVAC system.
  • digital thermostat 100 can dim or turn off display 106 while in standby mode. Then, when digital thermostat 100 detects a user's proximity, digital thermostat 100 can turn on display 106 for the local user.
  • FIG. IB illustrates a top surface 150 of an exemplary digital thermostat in accordance with an embodiment.
  • top surface 150 can be manufactured of a metallic material (e.g., aluminum) or a plastic material to have a textured metallic finish with an argent color.
  • Top surface 150 can include a power button 152, manufactured of a plastic material to have an argent color.
  • Reset button 152 can have a gray power symbol printed or engraved on a top surface.
  • the digital thermostat can include an on-screen power button.
  • display 106 of digital thermostat 100 can display an interactive user-interface element that allows the user to toggle between an "off state, an "auto” state, and a "manual” state.
  • the "off state turns off the digital thermostat, or places the digital thermostat on standby.
  • the "manual” state can hold a zone's temperature at a current temperature setting.
  • the "auto” state can run a schedule or program to adjust a zone's temperature according to the schedule or program.
  • the program can, for example, change a zone's temperature based on the schedule, as well as other dynamic information.
  • the dynamic information can include information from one or more sensors, such as a motion sensor, a proximity sensor, a humidity sensor, a temperature sensor, and/or from other sensors.
  • the user can create the program by specifying a set of rules that includes an action description, and includes conditions for executing the rule's action descriptions.
  • FIG. 1C illustrates a bottom surface 170 of an exemplary digital thermostat in accordance with an embodiment.
  • bottom surface 170 can be manufactured of a metallic material (e.g., aluminum) or a plastic material to have a textured metallic finish with an argent color.
  • Bottom surface 170 can include a reset button 172 and a sensor 174.
  • a user can press and hold reset button 172 for a predetermined time interval (e.g., 10 seconds) to cause the digital thermostat to reboot or to re-install a default firmware image.
  • Sensor 174 can include, for example, a temperature sensor, a humidity sensor, a microphone, or any other sensor now known or later developed.
  • the digital thermostat can include an optical code 176 and a secret number 178 printed over a portion of the digital thermostat's body.
  • optical code 176 and secret number 178 can be printed over a portion of a bottom surface of the digital thermostat.
  • the digital thermostat can use a built-in wireless device to host a closed Wi-Fi network, which the user can use to interface a personal computing device (e.g., a smartphone) to the digital thermostat. The user can gain access to the closed Wi-Fi network by entering secret number 176 as a secret key.
  • the digital thermostat can host an open Wi-Fi network, which the user can use to establish a network connection between his personal computing device and the digital thermostat.
  • the digital thermostat can use any wireless technology to establish a peer-to-peer network connection with the personal computing device, such as near field communication (NFC) or Bluetooth Low Energy.
  • NFC near field communication
  • the user can run an application on his personal computing device to send and/or receive data to/from the digital thermostat over the network connection.
  • the user can scan optical code 176 using an image sensor on his personal computing device, and the device signs the data sent to the digital thermostat using information encoded in optical code 176 (e.g., secret number 178).
  • the application can use optical code 176 to generate a one-way secure hash value that is used to sign data.
  • the application can use optical code 176 during a challenge-response handshake protocol with the digital thermostat that establishes a secure connection with the digital thermostat.
  • the application and the digital thermostat can exchange digital signatures that are then used to sign any data transferred between the two devices.
  • a plurality of unprovisioned devices can each host an unsecured Wi-Fi network with a common Service Set Identification (SSID).
  • SSID Service Set Identification
  • the user can use a provisioning application on the user's personal computing device to provision individual devices via the common SSID.
  • the application can provision the first device it connects to using this SSID.
  • the application can provision the device automatically (e.g., using an optical code and secret key pair which the user has previously scanned), or can interact with the user to present a sequence of device-provisioning steps.
  • the digital thermostat After the digital thermostat becomes provisioned, the digital thermostat will bring down its Wi-Fi network, which can allow the application to connect with any other unprovisioned device via the common SSID. The application will not detect a Wi-Fi network with the common SSID if no unprovisioned devices remain.
  • an access point can host an additional Wi-Fi network with an SSID that is dedicated for device provisioning.
  • Each device can be pre-configured to connect to the device-provisioning Wi-Fi network by default by searching for the device-provisioning SSID.
  • the application can detect an unprovisioned device by joining this device-provisioning SSID, or by querying the access point while connected to the main Wi-Fi network (via a different SSID). While provisioning the digital thermostat, the application can configure the digital thermostat to connect to the main Wi-Fi network. After the digital thermostat becomes provisioned, the digital thermostat will disconnect from the device-provisioning Wi-Fi network, and connects to the main Wi-Fi network.
  • the access point can redirect the network connection for the digital thermostat to a device-provisioning server that is in charge of provisioning devices into the network.
  • the device-provisioning server can store pairs of optical codes and secret keys for each device that is to be provisioned or has been provisioned, and uses this information to provision the digital thermostat. If the server does not have an optical code and secret key stored for the digital thermostat, the device-provisioning server can notify a system administrator that an unrecognized device has been detected, and requests the administrator to scan optical code 176 and secret key 178 from the digital thermostat into the system.
  • FIG. 2A illustrates a user interface (UI) display 200 of a digital thermostat in accordance with an embodiment.
  • UI display 200 can include environmental information for a zone of an HVAC system, and can include status information for the HVAC system.
  • the environmental information can include a time and date 202, a zone temperature 204, and a zone humidity level 206.
  • the status information can include a zone 210 that indicates an HVAC zone that is being monitored and controlled via UI display 200.
  • the status information can also include a system mode 212 (e.g., "auto” or “manual"), an HVAC mode 214 (e.g., “heating” or “cooling"), a fan mode 216 (e.g., "auto,” “on,” or “off), and an auxiliary heat indicator 218.
  • a system mode 212 e.g., "auto” or “manual”
  • HVAC mode 214 e.g., "heating” or “cooling”
  • a fan mode 216 e.g., "auto,” “on,” or “off
  • an auxiliary heat indicator 218 e.g., "auto,” "on,” or “off”
  • the digital thermostat can present the user with an alternative UI that allows the user to control one or more HVAC parameters.
  • the digital thermostat can present one or more additional UI elements that allow the user to change one or more HVAC settings.
  • FIG. 2B illustrates a configurable UI display 230 of a digital thermostat in accordance with an embodiment.
  • UI display 230 can include environmental information 232, and a target temperature 234.
  • Environmental information 232 can indicate, for example, a current temperature and a current humidity of an HVAC zone. If the current temperature is above (or below) target temperature 234 by a predetermined threshold, the digital thermostat can activate an air conditioner (or heater) to lower (or raise) the temperature to target temperature 234. Also, in some embodiments, if the current humidity is above a predetermined target humidity, the digital thermostat can activate the air conditioner to lower the zone's humidity to below the target humidity.
  • UI display 230 can also include a temperature range 232, which the user can interact with to change the temperature. For example, the user can either drag a temperature slider 234 along temperate range 232, or can tap on a portion of temperature range 232 that indicates a desired temperature.
  • the digital thermostat updates UI display 230 to move temperature slider 234 to the selected portion of temperature range 232. Then, while holding a finger on temperature range 232, the user can fine-tune the selected temperature by dragging his finger across temperature range 234. As the user drags his finger, the digital thermostat updates UI display 230 to move temperature slider 234 below the user's finger and along temperature range 232.
  • UI display 230 can also include other interactive UI elements.
  • UI display 230 can include a fan-controlling icon, which the user can tap on to select a desired state for the fan.
  • the possible states can include "on,” “off,” and "auto.”
  • UI display 230 can also include a screen indicator 242 that informs the user when the user can navigate to one or more other UI "screens" or "pages.”
  • Screen indicator 242 can display, for example, a dot for each "screen” that the user can navigate to.
  • a brightest dot e.g., a white dot
  • other dimmer dots e.g., a grey dot
  • FIG. 2C illustrates a UI display 260 for adjusting a thermostat temperature setting in accordance with an embodiment.
  • UI display 260 can include a scroll wheel 262 that a user can "scroll" by using a vertical "swipe" gesture over scroll wheel 262.
  • a center portion 268 of scroll wheel 262 displays a target temperature
  • an upper portion 270 of scroll wheel 262 displays temperatures above the current target temperature
  • a lower portion 272 of scroll wheel 262 displays temperatures below the current target temperature.
  • the temperatures displayed within center portion 268 are larger than the temperatures displayed within upper portion 270 and lower portion 272.
  • the digital thermostat can display scroll wheel 268 over a dominant portion of UI display 270 in response to a user tapping on, hold a finger over, or performing a vertical swipe gesture over a UI element that displays the current target temperature (e.g., UI element 234 of FIG. 2B). Also, as the user adjusts the target temperature, the digital thermostat can adjust the placement of a temperature slider 264 so that temperature slider 264 is centered on a portion of a temperature range 266 that corresponds to the target temperature.
  • FIG. 3 illustrates a block diagram of an exemplary digital thermostat 300 in accordance with an embodiment.
  • Digital thermostat 300 can include terminals 316 that can be coupled to a furnace and/or an air-conditioning unit to control an HVAC system.
  • Digital thermostat 300 can also include a flash storage device 306 that stores data and software instructions for operating the digital thermostat, as well as a processing unit 302 and a memory device 304 for executing the instructions.
  • the instructions can include an operating system that controls the HVAC system, and can also execute one or more applications installed by the use.
  • Digital thermostat 300 can also include one or more modules for communicating with external devices.
  • digital thermostat 300 can include communication modules 308, which can include an Ethernet module coupled to an Ethernet port, and/or can include or be coupled to a wireless module 310 (e.g., a Wi-Fi module, or a Bluetooth module).
  • Digital thermostat 300 can also include a serial port 312 (e.g., an RS-232 jack for a UART port), which can be coupled to an external peripheral device, and can be used by processing unit 302 to monitor and/or control the peripheral device.
  • the peripheral device can include an appliance (e.g., an HVAC system), or any electronic or computing device that can communicate via serial port 312.
  • Digital thermostat 300 can also include a user-interface device 318 for accepting input from a user.
  • user-interface device 318 includes a proximity sensor 320 that detects a user's proximity to the digital thermostat, and includes a touch-screen display 322 that displays a user interface to a user.
  • Touch-screen display 322 can also detect one or more screen portions touched by the user.
  • touch- screen display 322 can include a capacitive- touch screen, a resistive-touch screen, or any other touch screen technology now known or later developed.
  • Microcontroller 314 can monitor proximity sensor 320 to detect when the user is in front of touch-screen display 322, at which point microcontroller 314 can turn on touch-screen display 322. Also, when microcontroller 314 detects a user's presence, processing unit 302 can present an interactive user interface on touch-screen display 322 for the user. Microcontroller 314 can also monitor touch-screen display 322 to detect touch-screen gestures from the user. Processing unit 302 can process the gestures that interact with the user interface.
  • the digital thermostat can discover digital thermometers and motion sensors within a computer network. These digital thermometers and motion sensors can be deployed across one or more HVAC zones, which the digital thermostat can use to control the HVAC system for each of these zones.
  • Digital thermostat 300 can include one or more sensors 324, such as a temperature sensor, a humidity sensor, an ambient-light sensor, a motion sensor, a proximity sensor, or any other sensor device now known or later developed.
  • processing unit 302 can interface with sensors 324 via a serial interface, such as an Inter- Integrated Circuit (I2C) interface or a Serial Peripheral Interface (SPI) bus.
  • serial interface such as an Inter- Integrated Circuit (I2C) interface or a Serial Peripheral Interface (SPI) bus.
  • I2C Inter- Integrated Circuit
  • SPI Serial Peripheral Interface
  • Digital thermostat 300 can also include a universal serial bus (USB) port 326 (e.g., via a micro-USB connector), which can be used to perform diagnostics on digital thermostat 300, to load firmware to digital thermostat 300, or to provision digital thermostat 300.
  • USB universal serial bus
  • a user can perform diagnostics, for example, by interfacing a personal computing device (e.g., laptop) to digital thermostat 300 via USB port 326, and running diagnostics software on the personal computing device.
  • the diagnostics software can aggregate information from digital thermostat 300, can analyze this information to present configuration information to the user, and to detect or diagnose any malfunctions.
  • the user can provision digital thermostat 300 using USB port 326, for example, by attaching a USB drive (e.g., a flash drive) into USB port 326, such that this USB drive contains configuration and/or provisioning parameters (e.g., Wi-Fi parameters) for digital thermostat 300.
  • a USB drive e.g., a flash drive
  • configuration and/or provisioning parameters e.g., Wi-Fi parameters
  • digital thermostat 300 can display a confirmation prompt on user-interface device 318, which asks the user to confirm that he wishes to load the configuration information from the USB drive. If the user has set an administrator password, digital thermostat 300 can prompt the user to enter his password before loading the configuration information.
  • the user can also interact with power outlet 600 via a web page hosted by power outlet 600, or via a pre-installed application on a personal computing device that interfaces with power outlet 600.
  • FIG. 4A presents a flow chart illustrating a method for detecting temperature- sensing devices of a computer network in accordance with an embodiment.
  • the digital thermostat can scan a computer network to detect one or more temperature-sensing devices (operation 402).
  • These temperature-sensing devices can include, for example, a digital thermometer coupled to a network-accessible interfacing device.
  • the digital thermostat determines whether a temperature- sensing device was discovered (operation 404).
  • the digital thermostat presents the temperature- sensing device to a user (operation 406), and can receive a zone indication from the user for the temperature-sensing device (operation 408).
  • the system assigns the temperature-sensing device to the user-indicated zone (operation 410), and returns to operation 304 to search for other temperature-sensing devices.
  • FIG. 4B presents a flow chart illustrating a method for detecting motion- sensing devices of a computer network in accordance with an embodiment.
  • the digital thermostat can scan a computer network to detect one or more motion-sensing devices (operation 432).
  • These motion- sensing devices can include, for example, a proximity sensor or a motion sensor coupled to a network-accessible interfacing device.
  • the digital thermostat If the digital thermostat discovers a motion- sensing device (operation 434), the digital thermostat presents the motion- sensing device to a user (operation 436). The digital thermostat can receive a zone indication from the user for the motion-sensing device (operation 438), and in response, assigns the motion-sensing device to the user-indicated zone (operation 440). The system can return to operation 334 to search for other motion-sensing devices.
  • FIG. 4C presents a flow chart illustrating a method for controlling a heating, ventilation, and air conditioning (HVAC) system in accordance with an embodiment.
  • the digital thermostat can select an HVAC zone to control (operation 462), and determines a target temperature range for the selected zone (operation 464).
  • HVAC heating, ventilation, and air conditioning
  • the digital thermometer can determine the target temperature range by determining whether the HVAC zone is vacant. For example, the digital thermometer can periodically monitor motion sensors deployed within the zone, and can label the HVAC zone as "vacant" when motion has not been detected for more than a predetermined threshold time interval. The digital thermometer can select the target temperature range that corresponds to whether the HVAC zone is occupied or vacant.
  • the digital thermostat then obtains a temperature reading from one or more thermometers in the selected zone (operation 466), and determines whether the zone's temperature is within the target temperature range (operation 468). If the zone's temperature is below the target temperature range, the digital thermostat can activate a heating unit that corresponds to the HVAC zone to raise the zone's temperature to within the target range
  • the digital thermostat can activate an air-conditioning unit that corresponds to the HVAC zone to lower the zone's temperature to within the target range (operation 470).
  • FIG. 5A illustrates an exemplary power outlet 500 in accordance with an embodiment.
  • power outlet 500 can include a black socket cover 502 that provides access to two sockets 504.1 and 504.2.
  • Socket cover 502 may be manufactured of a plastic material to have a glossy finish.
  • power outlet 500 can include a light-emitting diode (LED) indicator 506, which can include two or more LEDs.
  • LED light-emitting diode
  • socket cover 502 may be semi-transparent black plastic to reveal light emitted by the LEDs behind socket cover 502, without revealing the LEDs when they are not emitting light.
  • LED indicator 506 can include a red LED and a blue LED. When both LEDs are on, socket cover 502 reveals a purple color. When only the red or blue LED is on, socket cover 502 reveals a red or blue color, respectively. On the other hand, when no LED is on, socket cover 502 does not reveal the LEDs.
  • Power outlet 500 also includes a metallic faceplate 508.
  • faceplate 508 may be manufactured of aluminum, with a dark anodized finish.
  • FIG. 5B illustrates a side view of an exemplary faceplate 510 in accordance with an embodiment.
  • faceplate 510 has a small bevel along a perimeter of the front face, and may be manufactured of aluminum with a dark anodized finish.
  • FIG. 5C illustrates an exemplary power outlet 520 in accordance with an embodiment.
  • power outlet 520 includes a metallic faceplate 508 with a curved edge.
  • faceplate 508 may be manufactured of aluminum, with a dark anodized finish.
  • FIG. 5D illustrates a side view of an exemplary faceplate 530 in accordance with an embodiment.
  • faceplate 530 includes a curved edge.
  • Faceplate 530 may be manufactured of aluminum, with a dark anodized finish.
  • FIG. 5E illustrates an exemplary power outlet in accordance with an embodiment.
  • power outlet 520 includes a light-colored metallic faceplate 508 with a beveled edge.
  • faceplate 508 may be manufactured of aluminum, with a light- colored anodized finish.
  • FIG. 5F illustrates a side view of an exemplary faceplate 550 in accordance with an embodiment.
  • faceplate 550 has a small bevel along a perimeter of the front face, and may be manufactured of aluminum with a light-colored anodized finish.
  • FIG. 5G illustrates an exemplary power outlet in accordance with an embodiment.
  • power outlet 560 can include a white socket cover 562, which may be manufactured of a plastic material to have a glossy finish.
  • Socket cover 562 may be semi-transparent white plastic to reveal light emitted by LEDs behind the socket cover (e.g., emitted light 564), without revealing the LEDs when they are not emitting light.
  • FIG. 6 illustrates a block diagram of an exemplary power outlet 600 in accordance with an embodiment.
  • Power outlet 600 can include a flash storage device 606 that stores data and software instructions for operating power outlet 600, as well as a processing unit 602 and a memory device 604 for executing the instructions.
  • Power outlet 600 can include two power-output modules 614.1 and 614.2, and each power-output module 614 can include a power-output controller 616 (e.g., a Prolific PL7221 integrated circuit (IC) device), a relay 618, and a power outlet 620.
  • a power-output controller 616 e.g., a Prolific PL7221 integrated circuit (IC) device
  • IC integrated circuit
  • Each relay 618.1 and 618.2 can be controlled individually, to enable or disable power to each of power outlets 620.1 and 620.2 independent of the other.
  • each of power outlets 620.1 and 620.2 can output up to 240 V.
  • Processing unit 602 can enable or disable power transmitted via a power outlet 620 by controlling the corresponding power-output controller 616 via digital interface pins or via a serial bus, at which point power-output controller 616 can generate an electrical signal for opening or closing relay 618 to enable or disable the power transmission to power outlet 620.
  • Processing unit 602 can configure power-output controller 616 to monitor or sample physical quantities of the power signal on a power outlet 620, and can obtain the sampled value via the digital interface pins or the serial bus.
  • the sampled physical quantities can include an electric current, an electric voltage, a real power, a reactive power, an apparent power, and/or other physical quantities of a power signal.
  • processing unit 602 can use power-output controllers 616.1 and 616.2 to perform energy monitoring, or to perform analytics computations.
  • the analytics computations can be performed to investigate an energy cost over time for devices attached to power outlet 620.1 or 620.2, or to investigate an energy usage for a given region (e.g., a bedroom) or for a given system (e.g., a home-theater system, or an HVAC system).
  • a given region e.g., a bedroom
  • a given system e.g., a home-theater system, or an HVAC system.
  • power outlet 600 can include a current-regulating device (e.g., a TRIAC device, not shown) to control an amount of power that is provided to an external device.
  • Power-output controller 616 can provide a trigger pulse to the current-regulating device for a determinable time interval, when the power signal's phase reaches a certain phase angle, to provide a desired power level to the external device.
  • power-output controller 616 can control the current-regulating device as a means to adjust the light fixture's brightness level.
  • power-output controller 616 can control the current-regulating device as a means to adjust the rotational speed of the motor's shaft (e.g., the fan's blades).
  • Power outlet 600 can also include a serial port 608, such as for a UART serial interface, an I C serial interface, or any other serial interface now known or later developed.
  • serial port 608 can implement a "dumb" power outlet that does not include a wireless communication module.
  • Power outlet 600 can interface with a "smart" power outlet via serial port 608 to receive commands, and/or to communicate measurements made by a power-output controller 616.
  • power outlet 600 implements a "smart" power outlet that includes one or more modules for communicating with external devices over a computer network.
  • power outlet 600 can include communication modules 610, which can include an Ethernet module coupled to an Ethernet port (not shown), and/or can include or be coupled to a wireless module 612 (e.g., a Wi-Fi module, or a Bluetooth module).
  • a wireless module 612 e.g., a Wi-Fi module, or a Bluetooth module.
  • power outlet 600 can receive "events" from one or more remote devices, such as a temperature measurement, a motion-detection event, a central controller, etc. If the received events satisfy a rule's condition, processing unit 602 can execute the rule's action description to perform a desired action.
  • the desired action can include, for example, measuring various parameters of a power-outlet module 614, and activating or disabling a power-outlet module 614.
  • Power outlet 600 can also use serial port 608 to interface with one or more "dumb" power outlets to forward events from a network controller.
  • Power outlet 600 can also include a universal serial bus (USB) port 622 (e.g., via a micro-USB connector), which can be used to perform diagnostics on power outlet 600, to load firmware to power outlet 600, or to provision power outlet 600.
  • USB universal serial bus
  • a user can perform diagnostics, for example, by interfacing a personal computing device (e.g., laptop) to power outlet 600 via USB port 622, and running diagnostics software on the personal computing device.
  • the diagnostics software can aggregate information from power outlet 600, can analyze this information to present configuration information to the user, and to detect or diagnose any malfunctions.
  • the user can provision power outlet 600 using USB port 622, for example, by attaching a USB drive (e.g., a flash drive) into USB port 622, such that this USB drive contains configuration and/or provisioning parameters (e.g., Wi-Fi parameters) for power outlet 600.
  • a USB drive e.g., a flash drive
  • configuration and/or provisioning parameters e.g., Wi-Fi parameters
  • the user can interact with power outlet 600 via a web page hosted by power outlet 600, or via a pre- installed application on a personal computing device that interfaces with power outlet 600.
  • power outlet 600 When power outlet 600 detects configuration information in the USB drive, power outlet 600 can display a confirmation prompt to the user via the web page or application, which asks the user to confirm that he wishes to load the configuration information from the USB drive. If the user has set an administrator password, power outlet 600 can prompt the user to enter his password before loading the configuration information.
  • FIG. 7 illustrates an angled view of an exemplary power outlet 700 in accordance with an embodiment.
  • power outlet 700 can include a serial interface 702 (e.g., an I C interface), LED indicators 704, a reset button 706, and an "INIT" button 708.
  • Serial interface 702 can include a 4-pin micro connector with electrical insulation, which can be used to interface power outlet 704 with a remote device (e.g., a power outlet or light dimmer).
  • a microprocessor of power outlet 700 initiates a power cycle. Also, when INIT button 708 is depressed for a predetermined time interval (e.g., 10 seconds), the microprocessor re- initializes the device to factory settings. In some embodiments, the microprocessor can be reinitialized to factory settings by loading a factory-installed firmware image into a flash storage device of power outlet 700.
  • LED indicators 704 can include two LED lights of different colors.
  • LED indicators 704 can include a red LED and a blue LED, which can each be turned on or off programmatically by a processor of power outlet 700.
  • LED indicators 704 can emit a red light, a blue light, a purple light (e.g., when both red and blue LEDs are on), or no light (e.g., when neither the red or blue LED is on).
  • the red LED can be turned on when the top (or bottom) power outlet is activated
  • the blue LED can be turned on when the bottom (or top) power outlet is activated.
  • LED indicators 704 will be dark when none of the power outlets are activated, or may emit a purple light when both of the power outlets are activated.
  • the color emitted by LED indicators 704 can be used to indicate a network connectivity, a network packet being transmitted, a network packet being received, a power source status, or any other user-defined condition or event.
  • the color emitted by LED indicators 704 can indicate that an electrical attribute of an outlet satisfies predetermined criteria (e.g., a power level or current level is above or below a predetermined threshold).
  • predetermined criteria e.g., a power level or current level is above or below a predetermined threshold.
  • the microprocessor may activate the red LED when the top outlet satisfies the predetermined criteria, and may activate the red LED when the bottom outlet satisfies the criteria.
  • a microprocessor of power outlet 700 can also control LED indicators 704 based on a user-defined rule, such as to implement a night light functionality by turning on both LEDs.
  • the user-defined "night light” rule can turn on both LEDs during a predetermined time of day.
  • a networked interfacing device can include or be coupled to a light sensor that measures a room's ambient light level. When the room's ambient light drops below a predetermined level, the interfacing device can send an event to one or more power outlets that are installed in the room via a computer network. This event can inform these power outlets that the room is dark. When a particular power outlet receives the event, the power outlet identifies a "night light” rule that is activated by this event, and can process the rule to turn on the power outlet's LEDs.
  • power outlet 700 can include an optical code 710 and a secret number 712 printed over a portion of power outlet 700.
  • optical code 710 and secret number 712 can be printed over a portion of power outlet 700 that is to be covered by a faceplate for power outlet 700.
  • Optical code 710 can encode a MAC address for power outlet 700, and can encode secret number 712.
  • Secret number 712 can include, for example, 6 hexadecimal or alphanumeric characters.
  • a user can scan optical code 710, such as via a device- provisioning application on a mobile device, to provision the power outlet 700 to operate within a device network. The user can enter secret number 712 into the device-provisioning application to complete the provisioning process.
  • power outlet 700 can use a built-in wireless device to host a closed Wi-Fi network, which the user can use to interface a personal computing device (e.g., a smartphone) to power outlet 700.
  • a personal computing device e.g., a smartphone
  • the user can gain access to the closed Wi-Fi network by entering secret number 712 as the secret key.
  • power outlet 700 can host an open Wi-Fi network, which the user can use to establish a network connection between his personal computing device and power outlet 700.
  • power outlet 700 can use any wireless technology to establish a peer- to-peer network connection with the personal computing device, such as near field
  • the user can run an application on his personal computing device to send and/or receive data to/from power outlet 700 over the network connection.
  • the user can scan optical code 710 using an image sensor on his personal computing device, and the device signs the data sent to power outlet 700 using information encoded in optical code 710 (e.g., secret number 712).
  • the application can use optical code 710 to generate a one-way secure hash value that is used to sign data.
  • the application can use optical code 710 during a challenge-response handshake protocol with power outlet 700 that establishes a secure connection with power outlet 700. During this handshake protocol, the application and power outlet 700 can exchange digital signatures that are then used to sign any data transferred between the two devices.
  • a plurality of unprovisioned devices can each host an unsecured Wi-Fi network with a common Service Set Identification (SSID).
  • the application can provision the device automatically (e.g., using an optical code and secret key pair which the user has previously scanned), or can interact with the user to present a sequence of device-provisioning steps.
  • power outlet 700 After power outlet 700 becomes provisioned, power outlet 700 will bring down its Wi-Fi network, which can allow the application to connect with any other unprovisioned device via the common SSID.
  • the application will not detect a Wi-Fi network with the common SSID if no unprovisioned devices are within a predetermined distance to the personal computing device.
  • an access point can host a device-provisioning Wi-Fi network with an SSID that is dedicated for provisioning devices.
  • Each device can be pre- configured to connect to the device-provisioning Wi-Fi network by default (via the
  • the application can detect an unprovisioned device by joining this device- provisioning SSID, or by querying the access point while connected to the main Wi-Fi network (via a different SSID). While provisioning power outlet 700, the application can configure power outlet 700 to connect to the main Wi-Fi network. After power outlet 700 becomes provisioned, power outlet 700 will disconnect from the device-provisioning Wi-Fi network, and connects to the main Wi-Fi network.
  • the access point can redirect the network connection for power outlet 700 to a device-provisioning server that is in charge of provisioning devices into the network.
  • the device-provisioning server can store pairs of optical codes and secret keys for each device that is to be provisioned or has been provisioned, and uses this information to provision power outlet 700. If the server does not have an optical code and secret key stored for power outlet 700, the device-provisioning server can notify a system administrator that an unrecognized device has been detected, and requests the administrator to scan optical code 710 and secret key 712 from power outlet 700 into the system.
  • FIG. 8 presents a flow chart illustrating a method for processing a measurement from a power outlet in accordance with an embodiment.
  • the power outlet can select an outlet port to monitor (operation 802), and determines whether the port is active (operation 804). If the port is active, the power outlet proceeds to monitor an electrical attribute from the port (operation 806).
  • the electrical attribute can include, for example, a power output, a voltage, a current, a power energy sum, and/or other electrical attributes.
  • the power outlet can then send the measured electrical attributes to a device-monitoring controller (operation 808).
  • the device-monitoring controller can include a central computer that monitors an operating state for a plurality of devices, and can coordinate communication between these devices.
  • the power outlet then analyzes triggering conditions for one or more rules
  • operation 810 determines whether a triggering condition is satisfied by the measured electrical attributes (operation 812). If so, the system proceeds to obtain a rule associated with the triggering condition (operation 814), and performs the rule's action description (operation 816). The system then returns to operation 810 to analyze triggering conditions for other rules that remain to be processed.
  • FIG. 9 presents a flow chart illustrating a method for initializing a power outlet in accordance with an embodiment.
  • the system can perform a boot-up process (operation 902), for example, in response to power returning to the home after an electrical blackout, or in response to a user turning on power to a home.
  • the boot-up process can include loading a firmware image into memory, and initializing one or more electronic components of the power outlet.
  • the power outlet can initialize a wireless module to join a wireless network.
  • the power outlet can also select an outlet port to initialize (operation 904), and determines an initialization configuration for the outlet port (operation 906). The power outlet then determines if the port is to be enabled (operation 908). If so, the power outlet closes a relay for the port to enable power to the port (operation 910). Otherwise, if the port is not to be enabled, the power outlet can open a relay for the port to disable power to the port (operation 912).
  • FIG. 10 illustrates an exemplary light dimmer 1000 in accordance with an embodiment.
  • Light dimmer 1000 can include a capacitive-touch display 1002 that can receive user input from the user.
  • the user input can include any gestures made by the user by touching and/or dragging a finger on capacitive-touch display 1002.
  • the gestures can include a "tap" gesture on a portion of capacitive-touch display 1002, and a "swipe" gesture that moves along a vertical direction over a portion of capacitive-touch display 1002.
  • Light dimmer 1000 can also include a light-emitting diode (LED) indicator
  • socket cover 1006 may be semi- transparent black plastic to reveal light emitted by the LEDs behind socket cover 1006, without revealing the LEDs when they are not emitting light.
  • LED indicator 1004 can include a red LED and a blue LED. When both LEDs are on, socket cover 1006 reveals a purple color. When only the red or blue LED is on, socket cover 1006 reveals a red or blue color, respectively. On the other hand, when no LED is on, socket cover 1006 does not reveal the LEDs.
  • Light dimmer 1000 can also configure one or both LEDs to pulsate at a predetermined frequency, for example, to indicate that light dimmer 1000 is in an "off or "waiting" state.
  • a metallic faceplate 1008 can be attached over light dimmer 1000.
  • faceplate 1008 may be manufactured of aluminum, with a dark anodized finish or a light-colored anodized finish.
  • capacitive touch display 1002 of light dimmer 1000 can include a display (e.g., a liquid crystal display (LCD)) to provide information to the user.
  • a display e.g., a liquid crystal display (LCD)
  • LCD liquid crystal display
  • the display can present information to the user while the user is interacting with capacitive touch display 1002 to configure light dimmer 1000, for example, by displaying an illustration for the current dim level and/or for any other state information. Also, the user can configure light dimmer 1000 to display the state information when turned on (e.g., to display an illustration of a dim level when providing power to a light fixture), even if the user is not interacting with capacitive touch display 1002.
  • the display on capacitive touch display 1002 can also display other information for the user.
  • the display can present a user interface that allows the user to select a menu item, such as for a configuration setting, or for an installed application.
  • the display can present one or more menu items per screen, and allows the user to navigate between screens by performing a vertical or horizontal swipe gesture.
  • light dimmer 1000 can present a user interface for the menu item on the display, which allows the user to configure or interact with the selected menu item (e.g., to adjust a configuration setting).
  • a menu item may correspond to a configuration interface for an external device, such as for a different light dimmer associated with the same user.
  • light dimmer 1000 can present a user interface that illustrates a status for one or more external devices, such as light dimmers, power outlets, digital thermostats, sensors, etc. If the user selects a device from the user interface (e.g., by tapping on the device's icon on capacitive touch display 1002), light dimmer 1000 can present a device-configuring menu that allows the user to adjust the device.
  • the device-device- configuring menu can allow the user to interact with capacitive touch display 1002 as if it were the remote light dimmer.
  • the user can perform the advanced light-dimming gestures on light dimmer 1000, and have these gestures be interpreted and/or executed by the remote light dimmer.
  • These gestures can correspond to device-configuring functions such as to program a default dim level, or can correspond to state-modifying functions such as to adjust a current dim level, or to turn the remote light dimmer on or off.
  • the device- configuring menu can allow the user to enable or disable power to the power outlet.
  • the device- configuring interface can also allow the user to view a status of the power outlet, such as to view a snapshot of the current power consumption via a port of the power outlet, or to view power consumption statistics over a given time interval.
  • the device-configuring menu can allow the user to view a current temperature and/or thermostat settings for one or more zones.
  • the user can also configure the thermostat settings for a zone, such as to set a temperature threshold for a heater and/or for an air-conditioning unit.
  • FIG. 11 illustrates a block diagram of an exemplary light dimmer 1100 in accordance with an embodiment.
  • Light dimmer 1100 can include a flash storage device 1106 that stores data and software instructions for operating light dimmer 1100, as well as a processing unit 1102 and a memory device 1104 for executing the instructions.
  • Light dimmer 1100 can also include a touch-sensitive user-interface 1122 and a microcontroller 1114 for controlling touch- sensitive user-interface 1122.
  • Touch-sensitive user-interface 1122 can include one or more sensors 1126, a plurality of touch- sensitive sensors 1128, and a light-emitting diode (LED) indicator 1130.
  • LED light-emitting diode
  • LED indicator 1130 can include two or more LEDs to indicate at least four device states.
  • LED indicator 1130 can include a red LED and a blue LED. When both LEDs are on, LED indicator 1130 emits a purple color. When only the red or blue LED is on, LED indicator 1130 emits a red or blue color, respectively. On the other hand, when no LED is on, LED indicator 1130 does not emit light.
  • These LED states can indicate the following four device states: “off,” “standby,” “switch,” and “dimmer.”
  • the “off state indicates that the light dimmer is not receiving any power
  • the "standby” state indicates that the light dimmer is receiving power but is not providing power to a light fixture.
  • the “switch” state indicates that the light dimmer is providing power to the light fixture using relay 1118.1
  • the “dimmer” state indicates that light dimmer is providing power to the light fixture using triac 1118.2.
  • Sensors 1126 can include a proximity sensor, a motion sensor, a temperature sensor, a humidity sensor, an ambient light sensor, and/or other sensor devices now known or later developed.
  • the proximity sensor can detect when an object (e.g., a user's hand) is within a close proximity of touch-sensitive user-interface 1122, and generates an analog signal based on the proximity of the detected object to sensors 1126.
  • the proximity sensor can include an infrared proximity sensor, which emits an infrared signal from an infrared emitter, and generates the analog signal based on an amount of infrared light detected by an infrared detector (e.g., infrared light that reflected off the user's hand).
  • the motion sensor can include an ultrasonic motion sensor, a microwave motion sensor, a tomographic motion sensor, or any motion- sensing technology now known or later developed.
  • the motion sensor can detect the motion and can generate a binary value that indicates that an object has been detected.
  • the motion sensor can generate an analog or digital value that indicates, for example, a change in an ultrasonic measurement, a change in a microwave measurement, etc.
  • Touch-sensitive sensors 1138 can include capacitive-touch sensors, resistive-touch sensors, or any touch-screen sensors now known or later developed. For example, when a user touches a respective capacitive-touch sensor (e.g., sensor 1128. ri), the touch- sensitive sensor detects an increase in capacitance on the surface of its touch screen, and generates an analog voltage which reflects the amount of capacitance that was detected.
  • a capacitive-touch sensor e.g., sensor 1128. ri
  • the touch- sensitive sensor detects an increase in capacitance on the surface of its touch screen, and generates an analog voltage which reflects the amount of capacitance that was detected.
  • a respective touch- sensitive sensor can include a jagged shape along one dimension, such as a plurality of chevron shapes adjoined along a horizontal dimension, and the set of touch-sensitive sensors 1128.1-1128. n can be arranged along a dimension of user-interface 1122 perpendicular to the jagged shape (e.g., along a vertical dimension of user-interface 1122). Further, two neighboring touch-sensitive sensors can be placed in close proximity, for example, so that a lowest point on one touch- sensitive sensor (e.g., sensor 1128.1) has a vertical coordinate along user-interface 1122 that is less than or equal to a highest point on a lower-neighboring touch-sensitive sensor (e.g., sensor 1128.2).
  • a respective touch- sensitive sensor can include any other shape suitable for implementing a touch-sensitive grid, and the set of touch- sensitive sensors 1128.1-1128. n can be arranged along two dimension of user-interface 1122 to create a touch- sensitive surface (e.g., a grid or any other user-interface pattern) associated with a pre-determined set of touch-surface gestures.
  • a touch-sensitive surface e.g., a grid or any other user-interface pattern
  • Touch-sensitive user-interface 1122 generates a digital output signal for each of proximity sensor 1130, touch-sensitive sensors 1128.1-1128. n, and sensors 1126.
  • Touch- sensitive user-interface 1122 can include a circuit that provides a constant current source to charge each capacitive-touch sensor 1128.
  • Touch- sensitive user-interface 1122 can also include an analog-to-digital converter (ADC) device or a Schmitt trigger device for each sensor, which converts the sensor's analog signal value to a digital binary signal that indicates whether the sensor is charged.
  • ADC analog-to-digital converter
  • Touch- sensitive user-interface 1122 can provide the digital binary signal to microcontroller 1114 via a parallel bus (e.g., a plurality of GPIO pins on microcontroller 1114), or via a serial bus (e.g., an SPI or an I C bus on microcontroller 1114).
  • a parallel bus e.g., a plurality of GPIO pins on microcontroller 1114
  • a serial bus e.g., an SPI or an I C bus on microcontroller 1114.
  • Microcontroller 1114 can use CTMU to determine whether a user is touching a respective capacitive-touch sensor 1128. When a user touches a capacitive-touch sensor, the user's touch adds a small capacitance to the sensor's capacitor, which causes the current source to require a longer time duration to charge the sensor's capacitor. Microcontroller 1114 measures an amount of time it takes to charge each capacitive-touch sensor 1128, and determines whether a user is touching a respective sensor by determining whether the amount of time required to charge the sensor is greater than or less than a predetermined threshold time. Microcontroller 1114 determines that a user is touching the sensor if the time required to charge the sensor is greater than the predetermined threshold time, and determines that the user is not touching the sensor otherwise.
  • Microcontroller 1114 can periodically monitor the state for the various sensors of touch- sensitive user-interface 1122, for example, at approximately 15 millisecond intervals. In some embodiments, microcontroller 1114 samples the various sensors of touch- sensitive user- interface 1122 on or after the voltage from the alternating current (AC) power supply crosses the zero-voltage level, which reduces noise in the measurements from touch- sensitive user-interface 1122. If microcontroller 1114 determines that proximity sensor 1130 detects an object, microcontroller 1114 can activate a light source for touch-sensitive user- interface 1122 to allow the user to see user-interface 1122 while the user is entering a device- controlling command via user-interface 1122.
  • AC alternating current
  • Microcontroller 1114 can activate the light source, for example, by ramping up the brightness of the light source over a determinable time interval to a determinable level (e.g., to a fixed level, or to a level derived from an amount of ambient light).
  • a determinable level e.g., to a fixed level, or to a level derived from an amount of ambient light.
  • microcontroller 1114 can determine a gesture based on the current state and the previous state of touch-screen user-interface 1122. For example, microcontroller 1114 can determine a current region of user-interface 1122 that the user is touching (e.g., the current state), and can determine a direction for a gesture based on a previous touch- sensitive sensor that detected an object's touch (e.g., the previous state). Once the user has completed his interaction with user-interface 1122, microcontroller 1114 can generate a gesture that indicates a speed and a direction of the user's gesture, and/or a distance traveled by the user's gesture.
  • microcontroller 1114 may determine that the user is making an upward finger- swipe gesture or a downward finger-swipe gesture, as well as a speed and distance traveled by the finger-swipe gesture. [00122] If the user is not swiping his finger across the surface of touch-sensitive user-interface 1122 (e.g., the previous state did not involve the user touching or swiping across user-interface 1114), microcontroller 1114 can determine a region of user-interface 1122 that the user has touched. Microcontroller 1114 can generate and store a gesture that indicates the surface portion of user-interface 1122 that the user has touched, for example, using a numeric value that indicates a vertical coordinate of the user-interface 1122 touched by the user.
  • Processing unit 1102 can configure the power output to the light fixture to reach a light intensity that corresponds to the numeric value.
  • Light dimmer 1100 can also include a vibrating mechanism (e.g., a vibrating motor) to provide haptic feedback to the user as the user swipes his finger across the surface of touch-sensitive user-interface 1122. This haptic feedback allows the user to feel a response that indicates the user's interaction with light dimmer 1100.
  • a vibrating mechanism e.g., a vibrating motor
  • processing unit 1102 periodically polls the sensor readings (e.g., at approximately 15 millisecond intervals) and/or gestures from microcontroller 1114.
  • microcontroller 1114 can send the current state of touch-sensitive user- interface 1122 to processing unit 1102, such that processing unit 1102 analyzes the current state and previous states of touch-sensitive user- interface 1122 to determine the user's gesture.
  • processing unit 1102 can use the obtained data to select a set of rules to evaluate, and can perform an action associated with any rules whose conditions have been met.
  • Processing unit 1102 can also select a set of remote devices that have subscribed to a piece of data (e.g., data for a detected motion and/or a detected gesture), and can send the piece of data to the selected devices using network addressing information associated with their corresponding network connections.
  • a piece of data e.g., data for a detected motion and/or a detected gesture
  • Light dimmer 1100 can include one or more communication modules 1108 for communicating with external devices.
  • Communication modules 1108 can include or be coupled to a wireless module 1110 (e.g., a Wi-Fi module, or a Bluetooth module), and/or can include an Ethernet module coupled to an Ethernet port (not shown).
  • Device architecture 280 can also include a serial port 1112 (e.g., an RS-232 jack for a UART port), which can be coupled to an external device, and can be used by processing unit 1102 to monitor and/or control the peripheral device.
  • the peripheral device can include a "dumb" light switch or power outlet, an appliance (e.g., an HVAC system), or any electronic or computing device that can communicate via serial port 1112.
  • Light dimmer 1100 can also include power-controlling modules 1118 to control and/or regulate an output power signal, and can include a power-output controller 1116 to configure and monitor the power output by power-controlling modules 1118.
  • Light dimmer 1100 can also include power terminals 1120 for providing the output power signal to an electrical load, such as a light fixture, an electric motor, an HVAC system, etc.
  • light dimmer 1100 implements a light switch
  • power-controlling modules 1118 includes a relay 1118.1.
  • Processing unit 1102 can configure microcontroller 1114 to close relay 1118.1 to provide power to an external load electrically coupled to power terminals 1120 (e.g., a light fixture), or to open relay 1118.1 to turn off power to the external load.
  • Microcontroller 1114 opens or closes relay 1118.1 by configuring power-output controller 1116 to generate the electrical signals necessary for opening or closing relay 1118.1.
  • Microcontroller can also configure power-output controller 1116 to monitor an amount of power dissipated by power- terminals 1120, for example, to periodically obtain a power measurement for an electrical load.
  • light dimmer 1100 can function as a dimmer (to control an average voltage to a light fixture) or as a switch (to turn on or off power to a light fixture).
  • processing unit 1102 can configure triac 1118.2 to provide up to 5 amps of current to a light fixture via power terminals 1120.
  • processing unit 1102 can configure relay 1118.1 to provide up to 15 amps of current to the light fixture via power terminals 1120.
  • the user can toggle the functionality of light dimmer 1100, for example, by pressing and holding a finger on touch- sensitive user-interface 1122 for a predetermined time interval (e.g., 10 seconds).
  • processing unit 1102 can close relay 1118.1 to enable power to a light fixture, and can open relay 1118.1 to turn off power to the light fixture.
  • relay 1118.1 is oftentimes implemented as a mechanical switch that emits noise while opening or closing.
  • processing unit 1102 can use triac 1118.2 to silently enable or disable power to the light fixture.
  • processing unit 1102 can detect a light-adjusting gesture from a user (e.g., via microcontroller 1114), and configures microcontroller 1114 to adjust a brightness level for the light fixture. For example, as the user performs an upward finger swipe on touch- sensitive user-interface 1122, processing unit 1102 can determine a brightness level for the light fixture based on the current (or most recent) position, direction, and/or velocity of the user's finger on touch- sensitive user- interface 1122. Processing unit 1102 can select the highest brightness level if the user taps on touch- sensitive sensor 1128.1, or can select the lowest (or off) brightness level if the user taps on touch- sensitive sensor 1128.W.
  • Processing unit 1102 can configure microcontroller 1114 to adjust the power output transmitted by triac 1118.2 to correspond to the user's desired brightness level.
  • microcontroller 1114 can configure power-output controller 1116 and triac 290.2 to clip an alternating-current (AC) waveform to produce a phase-clipped waveform that effectively reduces a brightness level for a light fixture electrically coupled to power terminals 1120.
  • AC alternating-current
  • processing unit 1102 can store a programmed brightness level for the user.
  • the user can perform an intensity-configuring gesture to program the brightness level to a desired level once.
  • the intensity-configuring gesture can include the user pressing and holding a finger (or two fingers) on touch- sensitive user-interface 1122 for a predetermined time interval (e.g., 5 seconds), and then dragging his finger (or multiple fingers on a two-dimensional capacitive-touch sensor) up or down to reach the desired brightness level.
  • the user can turn the light on or off by tapping anywhere on touch-sensitive user- interface 1122, which configures power-output controller 1116 to enable or disable power to power terminals 1120 at the programmed lighting level.
  • the user can also set the programmed brightness level by interacting with an application on a mobile device (e.g., a smartphone) that communicates the brightness level to light dimmer 1100.
  • a mobile device e.g., a smartphone
  • the user can use a web browser to load a web page hosted by light dimmer 1100, and can set the programmed brightness level using the web page.
  • processing unit 1102 can quickly ramp up or ramp down the brightness level if the user performs a fast upward or downward finger swipe.
  • processing unit 1102 can perform fine-grained adjustments to the light fixture's brightness level if the user performs a slow upward or downward finger swipe, for example, to increase or decrease the brightness level by a finer granularity than can be achieved by tapping on any of touch-sensitive sensors 1128.
  • Light dimmer 1100 can use sensors 1126 to perform dynamic lighting control. Hence, light dimmer 1100 can turn on lights when the motion sensor detects a motion (e.g., when a user enters a room), and can turn off lights when no motion is detected for at least a predetermined time interval (e.g., the user has left the room). Light dimmer 1100 can also use the ambient-light sensor to auto-calibrate a dim level. For example, the dim level configured by a user can correspond to a brightness level in the room. Light dimmer 1100 can use the ambient- light sensor to adjust the phase-clipped waveform on triac 1118.2 based on the room's brightness to reach the user-configured brightness level. Hence, light dimmer 1100 can increase a power output to an aging bulb to maintain the user's desired brightness level. Also, light dimmer 1100 can adjust the phase-clipped waveform throughout the day to reach and retain the user's desired brightness level.
  • a motion e.g.
  • Light dimmer 1100 can also use motion sensor 1126 as part of a security system, or as part of an HVAC system.
  • a security system can use motion detected by the motion sensor to compile a historical motion-sensing record.
  • the security system can trigger a security measure if motion is detected when a user is not expected to be nearby, such as to record video from a camera in the same room as light dimmer 1100.
  • An HVAC system can transition between an "active” (e.g., occupied) and "standby" (e.g., vacant) state based on whether motion has been detected via the motion sensor, or other motion sensors within the HVAC zone.
  • the HVAC system can set the zone to a user's comfort level when in the "active" state, and can set the zone to a low-energy configuration when in the "standby” state.
  • light dimmer 1100 can also be used in a master/slave configuration to control one or more light fixtures.
  • Typical light dimmers include a physical slider that controls a light fixture's state, and the state can only be changed when a user manually slides the physical slider up or down. Another dimmer cannot be used to control that same light fixture because it would interfere with the signals from the first dimmer.
  • light dimmer 1100 can have its local state modified either manually by a user swiping a finger over the surface of touch-sensitive user-interface 1122, or from a remote network device.
  • light dimmer 1100 can receive a command from a remote device (e.g., a central controller, or a remote light dimmer) that indicates a target output voltage or brightness level.
  • a remote device e.g., a central controller, or a remote light dimmer
  • light dimmer 1100 can process rules that configure a new brightness level for a light fixture.
  • Light dimmer 1100 can detect an event or can receive an event that triggers the rule (e.g., a local event, or an event received from a central controller or a remote light dimmer), and processes the rule's action description to adjust the light fixture's brightness level.
  • processing unit 1102 can control a light fixture that is not electrically coupled to power terminals 1120.
  • processing unit 1102 detects a gesture event performed by the user (e.g., via microcontroller 1114)
  • processing unit 1102 can send the gesture event to a remote light dimmer, a power outlet, or an interfacing device that has subscribed to events from the local light dimmer.
  • the remote interfacing device receives the gesture event, the remote interfacing device can use the event information to control power to a light fixture based on a rule stored in the device's local rule repository.
  • power-output controller 1116 also monitors an amount of current, an amount of power, and/or a phase of the power being transmitted via power terminals 1120.
  • Microcontroller 1114 can calibrate power output controller 1116, based on the measured values, to stabilize the power transmitted via power terminals 1120. If microcontroller 1114 detects a change in the electrical load, for example due to a dimming light fixture, microcontroller 1114 can adjust power output controller 1116 to compensate for the change in the electrical load to reach a desired power output.
  • microcontroller 1114 can use power output controller 1116 to implement a feedback loop that adjusts power to a light fixture to ensure a steady (non-fluctuating) light intensity, even as the light fixture ages over time.
  • light dimmer 1100 can detect when a light bulb is not compatible with a light-dimming functionality, when a light bulb has failed, or has started to fail. If a failed or failing bulb is detected, light dimmer 1100 can alert the user to replace the bulb. If an incompatible bulb is detected, light dimmer 1100 can alert the user that the bulb cannot be dimmed, and/or can transition into a "light switch" mode using either mechanical relay 1118.1 or solid-state triac 1118.2.
  • Light dimmer 1100 can also use an energy-monitoring functionality of 1116 to determine a lowest possible dim level for a light bulb, and configures this dim level as a minimum "dim" level for the light fixture. Light dimmer 1100 can turn off power to the light fixture if a user issues a command to lower a light level below this minimum dim level.
  • touch- sensitive user-interface 1122 can include a display device (e.g., a liquid crystal display (LCD) device).
  • touch- sensitive sensors 1128 can include a vertical array of capacitive-touch sensors (e.g., as displayed in FIG. 11), or can include a two-dimensional array or grid of capacitive-touch sensors (not shown).
  • Touch- sensitive sensors 1128 can detect, in real-time, when a user is touching touch- sensitive user- interface 1122 with one or more fingers, and display device can display near-real time feedback to the user while the user interacts with user-interface 1122. For example, the display device can display an updated dim level as the user is performing a gesture to adjust a light fixture's dim level.
  • the display device can also display other information and/or other interactive UI elements to the user.
  • light dimmer 1100 can use the display device to present a device-configuring menu to the user, which allows the user to select a Wi-Fi network, and to enter Wi-Fi credentials for a secured network.
  • the device-configuring menu can also allow the user to register a password that needs to be entered when making changes to the device, and can allow the user to configure whether configuration changes can be made over the Wi-Fi network.
  • Light dimmer 1100 can also use the display device to display a device- provisioning menu, which can add light dimmer 1100 to controller (e.g., a server) that monitors, configures, and/or controls one or more devices in a smart-home network.
  • controller e.g., a server
  • the user can switch between the dimmer's default screen (which, for example, can indicate a current lighting level), the device-configuring menu, and the device-provisioning menu by performing a side-swipe gesture.
  • light dimmer 1100 can animate a transition from one display screen to the next. This animation can include a screen-sliding effect, which slides at a horizontal rate that matches the user's side-sliding gesture.
  • light dimmer 1100 can present a data-input UI element that allows the user to enter characters into the input field.
  • the data-input UI element can include or resemble a keyboard, a slider, an input wheel, or any other graphical user interface (GUI) element now known or later developed.
  • GUI graphical user interface
  • Light dimmer 1100 can also include a universal serial bus (USB) port 1132
  • a user can perform diagnostics, for example, by interfacing a personal computing device (e.g., laptop) to light dimmer 1100 via USB port 1132, and running diagnostics software on the personal computing device.
  • the diagnostics software can aggregate information from light dimmer 1100, can analyze this information to present configuration information to the user, and to detect or diagnose any malfunctions.
  • the user can provision light dimmer 1100 using USB port 1132, for example, by attaching a USB drive (e.g., a flash drive) into USB port 1132, such that this USB drive contains configuration and/or provisioning parameters (e.g., Wi-Fi parameters) for light dimmer 1100.
  • a USB drive e.g., a flash drive
  • configuration and/or provisioning parameters e.g., Wi-Fi parameters
  • the user can interact with light dimmer 1100 via a web page hosted by light dimmer 1100, or via a pre-installed application on a personal computing device that interfaces with light dimmer 1100.
  • light dimmer 1100 detects configuration information in the USB drive
  • light dimmer 1100 can display a confirmation prompt to the user via the web page or application, which asks the user to confirm that he wishes to load the configuration information from the USB drive.
  • touch- sensitive user-interface 1122 can include a display device, which the user can interact with to confirm that he wishes to perform diagnostics on light dimmer 1100, to load firmware to light dimmer 1100, or to provision light dimmer 1100.
  • FIG. 12 illustrates an angled view of an exemplary light dimmer 1200 in accordance with an embodiment.
  • light dimmer 1200 can include a serial interface 1202 (e.g., an I 2 C interface), LED indicators 1204, a reset button 1206, and an "INIT" button
  • a microprocessor of power outlet 1200 initiates a power cycle.
  • INIT button 1208 is depressed for a predetermined time interval (e.g., 10 seconds)
  • the microprocessor re-initializes the device to factory settings.
  • the microprocessor can be reinitialized to factory settings by loading a factory-installed firmware image into a flash storage device of light dimmer 1200.
  • LED indicators 1204 can include two LED lights of different colors.
  • LED indicators 1204 can include a red LED and a blue LED, which can each be turned on or off programmatically by a processor of light dimmer 1200.
  • LED indicators 1204 can emit a red light, a blue light, a purple light (e.g., when both red and blue LEDs are on), or no light (e.g., when neither the red or blue LED is on).
  • the color emitted by LED indicators 1204 can be used to indicate a network connectivity, a network packet being transmitted, a network packet being received, a power source status, or any other user-defined condition or event.
  • the color emitted by LED indicators 1204 can indicate a status of light dimmer 1200, such as to indicate whether a light fixture is off (e.g., by turning on the red LED, or not turning on any LEDs), whether the light fixture is on (e.g., by turning on the blue LED), or whether the light fixture is being dimmed (e.g., by turning on the red and blue LEDs to emit a purple light).
  • a microprocessor of power outlet 1200 can also control LED indicators
  • light dimmer 1200 can include a light sensor that measures the room's ambient light level. When the room's ambient light drops below a predetermined level, light dimmer 1200 can generate an event which indicates that the room is dark. Light dimmer 1200 can use this event to identify a "night light” rule that is activated by this event, and can process the rule to turn on the power outlet's LEDs.
  • Light dimmer 1200 includes four terminals (illustrated as wires in FIG. 12): a load terminal, a ground terminal, a hot terminal, and a neutral terminal. Light dimmer 1200 uses the neutral and hot terminals to power the electronics of light dimmer 1200, and uses the load and ground terminals to provide power to an external light fixture.
  • Serial interface 1202 can include a 4-pin micro connector with electrical insulation, which can be used to interface light dimmer 704 with a remote device (e.g., a power outlet or light dimmer).
  • a "smart" device can include additional features that are not included in a "dumb” device, such as a wireless module, a motion sensor, a temperature sensor, etc.
  • the smart device can send signals to a dumb device, to allow the dumb device to perform the same functions of a smart device. For example, dumb devices can access a network connection from a smart device. Also, smart devices can send sensor readings from a sensor to dumb devices that don't include the sensor.
  • light dimmer 1200 can include an optical code
  • optical code 1210 and secret number 1212 can be printed over a portion of light dimmer 1200 that is to be covered by a faceplate for light dimmer 1200.
  • light dimmer 1200 can use a built-in wireless device to host a closed Wi-Fi network, which the user can use to interface a personal computing device (e.g., a smartphone) to light dimmer 1200. The user can gain access to the closed Wi-Fi network by entering secret number 1212 as the secret key.
  • light dimmer 1200 can host an open Wi-Fi network, which the user can use to establish a network connection between his personal computing device and light dimmer 1200.
  • light dimmer 1200 can use any wireless technology to establish a peer-to-peer network connection with the personal computing device, such as near field communication (NFC) or Bluetooth Low Energy.
  • NFC near field communication
  • the user can run an application on his personal computing device to send and/or receive data to/from light dimmer 1200 over the network connection.
  • the user can scan optical code 1210 using an image sensor on his personal computing device, and the device signs the data sent to light dimmer 1200 using information encoded in optical code 1210 (e.g., secret number 1212).
  • the application can use optical code 1210 to generate a one-way secure hash value that is used to sign data.
  • the application can use optical code 1210 during a challenge-response handshake protocol with light dimmer 1200 that establishes a secure connection with light dimmer 1200.
  • the application and light dimmer 1200 can exchange digital signatures that are then used to sign any data transferred between the two devices.
  • a plurality of unprovisioned devices can each host an unsecured Wi-Fi network with a common Service Set Identification (SSID).
  • the provisioning application on the user's personal computing device can provision one device at a time via the common SSID.
  • light dimmer 1200 After light dimmer 1200 becomes provisioned, light dimmer 1200 will bring down its Wi-Fi network, which can allow the application to connect with any other unprovisioned device via the common SSID.
  • the application will not detect a Wi-Fi network with the common SSID if no unprovisioned devices remain.
  • an access point can host an additional Wi-Fi network with an SSID that is dedicated for device provisioning.
  • Each device can be pre- configured to connect to the device-provisioning Wi-Fi network by default.
  • the application can detect an unprovisioned device by joining this device-provisioning SSID, or by querying the access point while connected to the main Wi-Fi network (via a different SSID). While provisioning light dimmer 1200, the application can configure light dimmer 1200 to connect to the main Wi-Fi network. After light dimmer 1200 becomes provisioned, light dimmer 1200 will disconnect from the device-provisioning Wi-Fi network, and connects to the main Wi-Fi network.
  • the access point can redirect the network connection for light dimmer 1200 to a device-provisioning server that is in charge of provisioning devices into the network.
  • the device-provisioning server can store pairs of optical codes and secret keys for each device that is to be provisioned or has been provisioned, and uses this information to provision light dimmer 1200. If the server does not have an optical code and secret key stored for light dimmer 1200, the device-provisioning server can notify a system administrator that an unrecognized device has been detected, and requests the administrator to scan optical code 1210 and secret key 1212 from light dimmer 1200 into the system.
  • Light dimmer 1200 can also include a universal serial bus (USB) interface that allows a user to upload a configuration file.
  • the USB interface can be accessed from behind a faceplate, such as on a side of light dimmer 1200.
  • the USB signals can be isolated from fluctuations in the light dimmer's power signals, for example, by using opto-couplers to prevent variations on the power signals from causing fluctuations on the USB signals.
  • FIG. 13 presents a flow chart illustrating a method 1300 for processing a user input for adjusting a brightness level in accordance with an embodiment.
  • the light dimmer can detect a user input from a capacitive-touch user interface (operation 1302), and analyzes the user input to determine a gesture (operation 1304).
  • the gesture can include, for example, a tap gesture, a touch-and-hold gesture, and a swipe gesture.
  • the tap gesture can include a touch-screen coordinate.
  • the touch-and-hold gesture can include a touch-screen coordinate, and a time duration during which the touch screen was touched.
  • the swipe gesture can include a starting coordinate, an ending coordinate, and a speed (or time interval) for the swipe gesture.
  • the system determines a target output lighting level based on the gesture (operation 1306).
  • the light dimmer samples the capacitive-touch user interface on or after the voltage from the alternating current (AC) power supply crosses the zero- voltage level, which reduces noise from the capacitive-touch user interface.
  • AC alternating current
  • a light fixture can be coupled directly to the local light dimmer.
  • a light fixture can also be coupled to a remote light dimmer or power outlet that provides power to the light fixture.
  • the local light dimmer can control power to multiple light fixtures by sending commands to one or more remote devices that provide power to these light fixtures.
  • the light dimmer can determine whether a target light fixture is coupled to a local power terminal (operation 1308), and if so, can adjust the power output of the power terminal based on the determined output level (operation 1310).
  • the light dimmer can also determine whether a target light fixture is coupled to a remote device (operation 1312), and if so, the light dimmer can send the determined output level to the remote device (operation 1314).
  • FIG. 14 presents a flow chart illustrating a method 1400 for automatically adjusting an operation mode to accommodate a light fixture in accordance with an embodiment.
  • a light fixture includes a mechanical relay that can output 15 amps of current, and includes a solid-state relay that can output 5 amps of current.
  • the mechanical relay can be used to enable or disable power to an external load, whereas the solid-state relay can be used to adjust an amount of power that is provided to the external load.
  • the light dimmer can monitor a power output of the power terminal (operation 1402), and determines whether the current is greater than 5 amps (operation 1404). If the current exceeds 5 amps, the light dimmer can transition to a "switch" mode to ensure that the external load does not draw more power than can be provided by a relay.
  • Some light fixtures may consume more than 5 amps of current while in dimming mode, but may consume less than 5 amps of current when completely on.
  • the light dimmer can transition to "switch" mode by setting the phase- clipped waveform to 100% (operation 1408).
  • the light dimmer can monitor a power output of the power terminal once again (operation 1410), and again determines whether the current is greater than 5 amps (operation 1412). If setting the phase-clipped waveform to 100% does not drop the current to below 5 amps, the light dimmer can disable the solid-state relay (operation 1414), and enables the mechanical relay to provide up to 15 amps of current to the power terminal (operation 1416).
  • the data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system.
  • the computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed.
  • the methods and processes described above can be included in hardware modules.
  • the hardware modules can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), and other programmable-logic devices now known or later developed.
  • ASIC application-specific integrated circuit
  • FPGA field-programmable gate arrays
  • the hardware modules When the hardware modules are activated, the hardware modules perform the methods and processes included within the hardware modules.

Abstract

A networked digital thermostat monitors one or more network-accessible sensors to control a heating and air-conditioning (HVAC) system. The digital thermostat can adjust a zone's temperature based on temperature measurements from network-accessible temperature sensors. A networked power outlet device can monitor an energy output from an outlet port. The power outlet device can also identify a rule triggered by the outlet port's energy output, and performs the identified rule's action description. A networked light-dimmer device can comprise a touch-screen interface that accepts touch-screen gestures as input for controlling a light fixture. The light-dimmer device can determine a target output lighting level based on a detected gesture, and configures an energy level for the light fixture based on the target output lighting level.

Description

DIGITAL THERMOSTAT, POWER OUTLET, AND
LIGHT DIMMER
Inventors: Randall W. Frei and Jonathan G. Bauer
BACKGROUND
Field
[0001] This disclosure is generally related to home automation. More specifically, this disclosure is related to a network-controllable digital thermostat, power outlet, and light dimmer that can be installed and provisioned to operate in a home automation system.
Related Art
[0002] Home automation, or smart homes, has enhanced quality of life of their users.
More specifically, a home automation system enables centralized control of lighting, HVAC (heating, ventilation, and air conditioning), appliances, and other systems, thus providing improved convenience, comfort, energy efficiency, and security. Some automation systems provide a way to automate the control of a device based on timed or environmental factors, such as in an HVAC unit or a sprinkler system. However, these typical automation systems provide automated control for an individual type of appliance, and the different automation systems do not interface with one another to provide a complete home automation solution.
[0003] In contrast, in a smart home, all electrical devices/appliances in the house are integrated together to provide convenience and a better living experience for its users. Moreover, the ubiquitousness of the Internet connection has also made it possible for a user to monitor and/or control his home remotely. For example, while vacationing in Europe, a user may connect to a surveillance system for his home at Washington D.C. to monitor activities in his home; or the user may turn off his home sprinkler system in response to receiving a storm forecast for the Washington D.C. area.
[0004] Typical home automation technologies are often implemented using specially designed control and monitor devices that that can be under the control of a third-party service. In the example of the home surveillance system, the surveillance system controller is connected to various specially designed sensors and/or cameras provided by the service provider. When the home owner contracts the service provider to install the service, the service provider may sell or lease each controller and sensor to the home owner at a premium. To make matters worse, the home owner may also need to pay a monthly subscription fee to the service provider to monitor and maintain the surveillance system. Hence, installing and using these third-party systems can be a large expense to users that prefer to install, configure, and monitor their own home automation system.
SUMMARY
[0005] One embodiment provides a networked digital thermostat that monitors one or more network-accessible sensors to control a heating and air-conditioning (HVAC) system. During operation, the digital thermostat can select a zone to monitor, and obtains temperature measurements from one or more network-accessible temperature sensors associated with the selected zone. The digital thermostat then adjusts the zone's temperature based on the obtained temperature measurements.
[0006] One embodiment provides a networked power outlet device that can monitor an energy output from an outlet port. During operation, the power outlet device can select an outlet port to monitor, and measures energy output from the port. The system also analyzes triggering conditions for one or more rules to identify a rule triggered by the outlet port' s energy output, and performs the identified rule's action description.
[0007] One embodiment provides a networked light-dimmer device that comprises a touch-screen interface that accepts touch-screen gestures as input for controlling one or more light fixtures. During operation, the light-dimmer device can determine a gesture performed by a user on the touch- screen interface, and determines a target output lighting level based on the gesture. The light-dimmer device then configures an energy level for a target light fixture based on the target output lighting level.
BRIEF DESCRIPTION OF THE FIGURES
[0008] The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawings will be provided by the Office upon request and payment of the necessary fee.
[0009] FIG. 1A illustrates an exemplary digital thermostat in accordance with an embodiment.
[0010] FIG. IB illustrates a top surface of an exemplary digital thermostat in accordance with an embodiment.
[0011] FIG. 1C illustrates a bottom surface of an exemplary digital thermostat in accordance with an embodiment. [0012] FIG. 2A illustrates a user interface (UI) display of a digital thermostat in accordance with an embodiment.
[0013] FIG. 2B illustrates a configurable UI display of a digital thermostat in accordance with an embodiment.
[0014] FIG. 2C illustrates a UI display for adjusting a thermostat temperature setting in accordance with an embodiment.
[0015] FIG. 3 illustrates a block diagram of an exemplary digital thermostat in accordance with an embodiment.
[0016] FIG. 4A presents a flow chart illustrating a method for detecting temperature- sensing devices of a computer network in accordance with an embodiment.
[0017] FIG. 4B presents a flow chart illustrating a method for detecting motion- sensing devices of a computer network in accordance with an embodiment.
[0018] FIG. 4C presents a flow chart illustrating a method for controlling a heating, ventilation, and air conditioning (HVAC) system in accordance with an embodiment.
[0019] FIG. 5A illustrates an exemplary power outlet in accordance with an embodiment.
[0020] FIG. 5B illustrates a side view of an exemplary faceplate in accordance with an embodiment.
[0021] FIG. 5C illustrates an exemplary power outlet in accordance with an embodiment.
[0022] FIG. 5D illustrates a side view of an exemplary faceplate in accordance with an embodiment.
[0023] FIG. 5E illustrates an exemplary power outlet in accordance with an embodiment.
[0024] FIG. 5F illustrates a side view of an exemplary faceplate in accordance with an embodiment.
[0025] FIG. 5G illustrates an exemplary power outlet in accordance with an embodiment.
[0026] FIG. 6 illustrates a block diagram of an exemplary power outlet in accordance with an embodiment.
[0027] FIG. 7 illustrates an angled view of an exemplary power outlet in accordance with an embodiment.
[0028] FIG. 8 presents a flow chart illustrating a method for processing a measurement from a power outlet in accordance with an embodiment.
[0029] FIG. 9 presents a flow chart illustrating a method for initializing a power outlet in accordance with an embodiment.
[0030] FIG. 10 illustrates an exemplary light dimmer in accordance with an embodiment.
[0031] FIG. 11 illustrates a block diagram of an exemplary light dimmer in accordance with an embodiment. [0032] FIG. 12 illustrates an angled view of an exemplary light dimmer in accordance with an embodiment.
[0033] FIG. 13 presents a flow chart illustrating a method for processing a user input for adjusting a brightness level in accordance with an embodiment.
[0034] FIG. 14 presents a flow chart illustrating a method for automatically adjusting an operation mode to accommodate a light fixture in accordance with an embodiment.
[0035] In the figures, like reference numerals refer to the same figure elements.
DETAILED DESCRIPTION
[0036] The following description is presented to enable any person skilled in the art to make and use the embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.
Digital Thermostat
[0037] FIG. 1A illustrates an exemplary digital thermostat 100 in accordance with an embodiment. Digital thermostat 100 can include a front face 102, a cover 104, and capacitive- touch display 106. Front face 102 can be manufactured of a plastic or glass material, to have a black semi-transparent surface with a glossy finish. Cover 104 can be manufactured of a metallic material (e.g., aluminum) with an argent color. A front-facing surface of cover 104 (e.g., a surface parallel to front face 102) can be manufactured to have a glossy finish, and a side-facing surface of cover 104 can be manufactured to have a textured finish.
[0038] Capacitive-touch display 106 can display information to a user, and can include a matrix of capacitive-touch sensors for receiving input from a user. The capacitive-touch sensor can detect an increase in capacitance on the surface of display 102 when a user touches the touch-sensitive sensor. Each capacitive-touch sensor generates an analog voltage which corresponds to the amount of capacitance that was detected on the surface of display 106 over the sensor.
[0039] Digital thermostat 100 can detect a user input by analyzing information obtained from capacitive-touch display 106. The user input can include any gestures made by the user by touching and/or dragging a finger or stylus on capacitive-touch display 106. The gestures can include a "tap" gesture on a portion of capacitive-touch display 106 (e.g., a touch event to select a display item), and a "swipe" gesture that moves along a surface path of capacitive-touch display 106 (e.g., a drag event to scroll a display item).
[0040] Digital thermostat 100 can also include a proximity sensor to detect when the user or the user's hand is within a close proximity of capacitive-touch display 106, and generates an analog signal based on the proximity of the detected object to the proximity sensor. For example, the proximity sensor can include an infrared proximity sensor, which emits an infrared signal from an infrared emitter, and generates the analog signal based on an amount of infrared light detected by an infrared detector (e.g., infrared light that reflected off the user's hand).
[0041] In some embodiments, digital thermostat 100 can include a standby mode while the user is not immediately in front of digital thermostat 100. For example, the user interface presented in the stand-by mode may be non-interactive, and displays environmental information and status information for the HVAC system. This user interface can be optimized to allow the user to view the displayed information from a distance. Then, when digital thermostat 100 detects a user's proximity to front face 102, digital thermostat 100 can transition into an interactive mode that presents interactive user- interface elements to the local user. The user- interface elements can allow the user to adjust the target temperature range, a fan setting, or any other configuration settings for the HVAC system. In some other embodiments, digital thermostat 100 can dim or turn off display 106 while in standby mode. Then, when digital thermostat 100 detects a user's proximity, digital thermostat 100 can turn on display 106 for the local user.
[0042] FIG. IB illustrates a top surface 150 of an exemplary digital thermostat in accordance with an embodiment. Specifically, top surface 150 can be manufactured of a metallic material (e.g., aluminum) or a plastic material to have a textured metallic finish with an argent color. Top surface 150 can include a power button 152, manufactured of a plastic material to have an argent color. Reset button 152 can have a gray power symbol printed or engraved on a top surface.
[0043] In some embodiments, the digital thermostat can include an on-screen power button. For example, display 106 of digital thermostat 100 (FIG. 1A) can display an interactive user-interface element that allows the user to toggle between an "off state, an "auto" state, and a "manual" state. The "off state turns off the digital thermostat, or places the digital thermostat on standby. The "manual" state can hold a zone's temperature at a current temperature setting. The "auto" state can run a schedule or program to adjust a zone's temperature according to the schedule or program. The program can, for example, change a zone's temperature based on the schedule, as well as other dynamic information. The dynamic information can include information from one or more sensors, such as a motion sensor, a proximity sensor, a humidity sensor, a temperature sensor, and/or from other sensors. In some embodiments, the user can create the program by specifying a set of rules that includes an action description, and includes conditions for executing the rule's action descriptions.
[0044] FIG. 1C illustrates a bottom surface 170 of an exemplary digital thermostat in accordance with an embodiment. Specifically, bottom surface 170 can be manufactured of a metallic material (e.g., aluminum) or a plastic material to have a textured metallic finish with an argent color. Bottom surface 170 can include a reset button 172 and a sensor 174. A user can press and hold reset button 172 for a predetermined time interval (e.g., 10 seconds) to cause the digital thermostat to reboot or to re-install a default firmware image. Sensor 174 can include, for example, a temperature sensor, a humidity sensor, a microphone, or any other sensor now known or later developed.
[0045] In some embodiments, the digital thermostat can include an optical code 176 and a secret number 178 printed over a portion of the digital thermostat's body. For example, optical code 176 and secret number 178 can be printed over a portion of a bottom surface of the digital thermostat. The digital thermostat can use a built-in wireless device to host a closed Wi-Fi network, which the user can use to interface a personal computing device (e.g., a smartphone) to the digital thermostat. The user can gain access to the closed Wi-Fi network by entering secret number 176 as a secret key.
[0046] As another example, the digital thermostat can host an open Wi-Fi network, which the user can use to establish a network connection between his personal computing device and the digital thermostat. Alternatively, the digital thermostat can use any wireless technology to establish a peer-to-peer network connection with the personal computing device, such as near field communication (NFC) or Bluetooth Low Energy. The user can run an application on his personal computing device to send and/or receive data to/from the digital thermostat over the network connection. The user can scan optical code 176 using an image sensor on his personal computing device, and the device signs the data sent to the digital thermostat using information encoded in optical code 176 (e.g., secret number 178). The application can use optical code 176 to generate a one-way secure hash value that is used to sign data. Alternatively, the application can use optical code 176 during a challenge-response handshake protocol with the digital thermostat that establishes a secure connection with the digital thermostat. During this handshake protocol, the application and the digital thermostat can exchange digital signatures that are then used to sign any data transferred between the two devices.
[0047] In some embodiments, a plurality of unprovisioned devices (e.g., power outlets, light dimmers, thermostats, etc.) can each host an unsecured Wi-Fi network with a common Service Set Identification (SSID). The user can use a provisioning application on the user's personal computing device to provision individual devices via the common SSID. Each time the application detects a Wi-Fi network at the common SSID, the application can provision the first device it connects to using this SSID. The application can provision the device automatically (e.g., using an optical code and secret key pair which the user has previously scanned), or can interact with the user to present a sequence of device-provisioning steps. After the digital thermostat becomes provisioned, the digital thermostat will bring down its Wi-Fi network, which can allow the application to connect with any other unprovisioned device via the common SSID. The application will not detect a Wi-Fi network with the common SSID if no unprovisioned devices remain.
[0048] In some embodiments, an access point can host an additional Wi-Fi network with an SSID that is dedicated for device provisioning. Each device can be pre-configured to connect to the device-provisioning Wi-Fi network by default by searching for the device-provisioning SSID. The application can detect an unprovisioned device by joining this device-provisioning SSID, or by querying the access point while connected to the main Wi-Fi network (via a different SSID). While provisioning the digital thermostat, the application can configure the digital thermostat to connect to the main Wi-Fi network. After the digital thermostat becomes provisioned, the digital thermostat will disconnect from the device-provisioning Wi-Fi network, and connects to the main Wi-Fi network.
[0049] Alternatively, when the digital thermostat joins the device-provisioning Wi-Fi network of the access point, the access point can redirect the network connection for the digital thermostat to a device-provisioning server that is in charge of provisioning devices into the network. The device-provisioning server can store pairs of optical codes and secret keys for each device that is to be provisioned or has been provisioned, and uses this information to provision the digital thermostat. If the server does not have an optical code and secret key stored for the digital thermostat, the device-provisioning server can notify a system administrator that an unrecognized device has been detected, and requests the administrator to scan optical code 176 and secret key 178 from the digital thermostat into the system.
[0050] FIG. 2A illustrates a user interface (UI) display 200 of a digital thermostat in accordance with an embodiment. UI display 200 can include environmental information for a zone of an HVAC system, and can include status information for the HVAC system. The environmental information can include a time and date 202, a zone temperature 204, and a zone humidity level 206. The status information can include a zone 210 that indicates an HVAC zone that is being monitored and controlled via UI display 200. The status information can also include a system mode 212 (e.g., "auto" or "manual"), an HVAC mode 214 (e.g., "heating" or "cooling"), a fan mode 216 (e.g., "auto," "on," or "off), and an auxiliary heat indicator 218. [0051] In some embodiments, when a user approaches the digital thermostat or taps on display 200, the digital thermostat can present the user with an alternative UI that allows the user to control one or more HVAC parameters. For example, the digital thermostat can present one or more additional UI elements that allow the user to change one or more HVAC settings.
[0052] FIG. 2B illustrates a configurable UI display 230 of a digital thermostat in accordance with an embodiment. UI display 230 can include environmental information 232, and a target temperature 234. Environmental information 232 can indicate, for example, a current temperature and a current humidity of an HVAC zone. If the current temperature is above (or below) target temperature 234 by a predetermined threshold, the digital thermostat can activate an air conditioner (or heater) to lower (or raise) the temperature to target temperature 234. Also, in some embodiments, if the current humidity is above a predetermined target humidity, the digital thermostat can activate the air conditioner to lower the zone's humidity to below the target humidity.
[0053] UI display 230 can also include a temperature range 232, which the user can interact with to change the temperature. For example, the user can either drag a temperature slider 234 along temperate range 232, or can tap on a portion of temperature range 232 that indicates a desired temperature. In some embodiments, when the user taps and holds on a portion of temperature range 232, the digital thermostat updates UI display 230 to move temperature slider 234 to the selected portion of temperature range 232. Then, while holding a finger on temperature range 232, the user can fine-tune the selected temperature by dragging his finger across temperature range 234. As the user drags his finger, the digital thermostat updates UI display 230 to move temperature slider 234 below the user's finger and along temperature range 232.
[0054] UI display 230 can also include other interactive UI elements. For example, UI display 230 can include a fan-controlling icon, which the user can tap on to select a desired state for the fan. The possible states can include "on," "off," and "auto." UI display 230 can also include a screen indicator 242 that informs the user when the user can navigate to one or more other UI "screens" or "pages." Screen indicator 242 can display, for example, a dot for each "screen" that the user can navigate to. A brightest dot (e.g., a white dot) can indicate which screen is currently being presented to the user, and other dimmer dots (e.g., a grey dot) indicate other pages to which the user can navigate. A horizontal row of dots indicates that the user can use a horizontal- swipe gesture to navigate between screens, and a vertical row of dots (not shown) indicates that the user can use a vertical-swipe gesture to navigate between screens. The other screens can present advanced configuration options to the user, or can present apps that the user has installed into the digital thermostat. [0055] FIG. 2C illustrates a UI display 260 for adjusting a thermostat temperature setting in accordance with an embodiment. Specifically, UI display 260 can include a scroll wheel 262 that a user can "scroll" by using a vertical "swipe" gesture over scroll wheel 262. A center portion 268 of scroll wheel 262 displays a target temperature, an upper portion 270 of scroll wheel 262 displays temperatures above the current target temperature, and a lower portion 272 of scroll wheel 262 displays temperatures below the current target temperature. In some embodiments, the temperatures displayed within center portion 268 are larger than the temperatures displayed within upper portion 270 and lower portion 272.
[0056] In some embodiments, the digital thermostat can display scroll wheel 268 over a dominant portion of UI display 270 in response to a user tapping on, hold a finger over, or performing a vertical swipe gesture over a UI element that displays the current target temperature (e.g., UI element 234 of FIG. 2B). Also, as the user adjusts the target temperature, the digital thermostat can adjust the placement of a temperature slider 264 so that temperature slider 264 is centered on a portion of a temperature range 266 that corresponds to the target temperature.
[0057] FIG. 3 illustrates a block diagram of an exemplary digital thermostat 300 in accordance with an embodiment. Digital thermostat 300 can include terminals 316 that can be coupled to a furnace and/or an air-conditioning unit to control an HVAC system. Digital thermostat 300 can also include a flash storage device 306 that stores data and software instructions for operating the digital thermostat, as well as a processing unit 302 and a memory device 304 for executing the instructions. In some embodiments, the instructions can include an operating system that controls the HVAC system, and can also execute one or more applications installed by the use.
[0058] Digital thermostat 300 can also include one or more modules for communicating with external devices. For example, digital thermostat 300 can include communication modules 308, which can include an Ethernet module coupled to an Ethernet port, and/or can include or be coupled to a wireless module 310 (e.g., a Wi-Fi module, or a Bluetooth module). Digital thermostat 300 can also include a serial port 312 (e.g., an RS-232 jack for a UART port), which can be coupled to an external peripheral device, and can be used by processing unit 302 to monitor and/or control the peripheral device. The peripheral device can include an appliance (e.g., an HVAC system), or any electronic or computing device that can communicate via serial port 312.
[0059] Digital thermostat 300 can also include a user-interface device 318 for accepting input from a user. Specifically, user-interface device 318 includes a proximity sensor 320 that detects a user's proximity to the digital thermostat, and includes a touch-screen display 322 that displays a user interface to a user. Touch-screen display 322 can also detect one or more screen portions touched by the user. For example, touch- screen display 322 can include a capacitive- touch screen, a resistive-touch screen, or any other touch screen technology now known or later developed.
[0060] Microcontroller 314 can monitor proximity sensor 320 to detect when the user is in front of touch-screen display 322, at which point microcontroller 314 can turn on touch-screen display 322. Also, when microcontroller 314 detects a user's presence, processing unit 302 can present an interactive user interface on touch-screen display 322 for the user. Microcontroller 314 can also monitor touch-screen display 322 to detect touch-screen gestures from the user. Processing unit 302 can process the gestures that interact with the user interface.
[0061] In some embodiments, the digital thermostat can discover digital thermometers and motion sensors within a computer network. These digital thermometers and motion sensors can be deployed across one or more HVAC zones, which the digital thermostat can use to control the HVAC system for each of these zones.
[0062] Digital thermostat 300 can include one or more sensors 324, such as a temperature sensor, a humidity sensor, an ambient-light sensor, a motion sensor, a proximity sensor, or any other sensor device now known or later developed. In some embodiments, processing unit 302 can interface with sensors 324 via a serial interface, such as an Inter- Integrated Circuit (I2C) interface or a Serial Peripheral Interface (SPI) bus.
[0063] Digital thermostat 300 can also include a universal serial bus (USB) port 326 (e.g., via a micro-USB connector), which can be used to perform diagnostics on digital thermostat 300, to load firmware to digital thermostat 300, or to provision digital thermostat 300. A user can perform diagnostics, for example, by interfacing a personal computing device (e.g., laptop) to digital thermostat 300 via USB port 326, and running diagnostics software on the personal computing device. The diagnostics software can aggregate information from digital thermostat 300, can analyze this information to present configuration information to the user, and to detect or diagnose any malfunctions.
[0064] The user can provision digital thermostat 300 using USB port 326, for example, by attaching a USB drive (e.g., a flash drive) into USB port 326, such that this USB drive contains configuration and/or provisioning parameters (e.g., Wi-Fi parameters) for digital thermostat 300. When digital thermostat 300 detects configuration information in the USB drive, digital thermostat 300 can display a confirmation prompt on user-interface device 318, which asks the user to confirm that he wishes to load the configuration information from the USB drive. If the user has set an administrator password, digital thermostat 300 can prompt the user to enter his password before loading the configuration information. The user can also interact with power outlet 600 via a web page hosted by power outlet 600, or via a pre-installed application on a personal computing device that interfaces with power outlet 600.
[0065] FIG. 4A presents a flow chart illustrating a method for detecting temperature- sensing devices of a computer network in accordance with an embodiment. During operation, the digital thermostat can scan a computer network to detect one or more temperature-sensing devices (operation 402). These temperature-sensing devices can include, for example, a digital thermometer coupled to a network-accessible interfacing device. The digital thermostat then determines whether a temperature- sensing device was discovered (operation 404).
[0066] If a temperature-sensing device has been discovered, the digital thermostat presents the temperature- sensing device to a user (operation 406), and can receive a zone indication from the user for the temperature-sensing device (operation 408). The system then assigns the temperature-sensing device to the user-indicated zone (operation 410), and returns to operation 304 to search for other temperature-sensing devices.
[0067] FIG. 4B presents a flow chart illustrating a method for detecting motion- sensing devices of a computer network in accordance with an embodiment. During operation, the digital thermostat can scan a computer network to detect one or more motion-sensing devices (operation 432). These motion- sensing devices can include, for example, a proximity sensor or a motion sensor coupled to a network-accessible interfacing device.
[0068] If the digital thermostat discovers a motion- sensing device (operation 434), the digital thermostat presents the motion- sensing device to a user (operation 436). The digital thermostat can receive a zone indication from the user for the motion-sensing device (operation 438), and in response, assigns the motion-sensing device to the user-indicated zone (operation 440). The system can return to operation 334 to search for other motion-sensing devices.
[0069] FIG. 4C presents a flow chart illustrating a method for controlling a heating, ventilation, and air conditioning (HVAC) system in accordance with an embodiment. During operation, the digital thermostat can select an HVAC zone to control (operation 462), and determines a target temperature range for the selected zone (operation 464). In some
embodiments, the digital thermometer can determine the target temperature range by determining whether the HVAC zone is vacant. For example, the digital thermometer can periodically monitor motion sensors deployed within the zone, and can label the HVAC zone as "vacant" when motion has not been detected for more than a predetermined threshold time interval. The digital thermometer can select the target temperature range that corresponds to whether the HVAC zone is occupied or vacant.
[0070] The digital thermostat then obtains a temperature reading from one or more thermometers in the selected zone (operation 466), and determines whether the zone's temperature is within the target temperature range (operation 468). If the zone's temperature is below the target temperature range, the digital thermostat can activate a heating unit that corresponds to the HVAC zone to raise the zone's temperature to within the target range
(operation 470). On the other hand, if the zone's temperature is above the target temperature range, the digital thermostat can activate an air-conditioning unit that corresponds to the HVAC zone to lower the zone's temperature to within the target range (operation 470).
Power Outlet
[0071] FIG. 5A illustrates an exemplary power outlet 500 in accordance with an embodiment. Specifically, power outlet 500 can include a black socket cover 502 that provides access to two sockets 504.1 and 504.2. Socket cover 502 may be manufactured of a plastic material to have a glossy finish. Also, power outlet 500 can include a light-emitting diode (LED) indicator 506, which can include two or more LEDs. For example, socket cover 502 may be semi-transparent black plastic to reveal light emitted by the LEDs behind socket cover 502, without revealing the LEDs when they are not emitting light.
[0072] In some embodiments, LED indicator 506 can include a red LED and a blue LED. When both LEDs are on, socket cover 502 reveals a purple color. When only the red or blue LED is on, socket cover 502 reveals a red or blue color, respectively. On the other hand, when no LED is on, socket cover 502 does not reveal the LEDs.
[0073] Power outlet 500 also includes a metallic faceplate 508. In some embodiments, faceplate 508 may be manufactured of aluminum, with a dark anodized finish.
[0074] FIG. 5B illustrates a side view of an exemplary faceplate 510 in accordance with an embodiment. Specifically, faceplate 510 has a small bevel along a perimeter of the front face, and may be manufactured of aluminum with a dark anodized finish.
[0075] FIG. 5C illustrates an exemplary power outlet 520 in accordance with an embodiment. Specifically, power outlet 520 includes a metallic faceplate 508 with a curved edge. In some embodiments, faceplate 508 may be manufactured of aluminum, with a dark anodized finish.
[0076] FIG. 5D illustrates a side view of an exemplary faceplate 530 in accordance with an embodiment. Specifically, faceplate 530 includes a curved edge. Faceplate 530 may be manufactured of aluminum, with a dark anodized finish.
[0077] FIG. 5E illustrates an exemplary power outlet in accordance with an embodiment. Specifically, power outlet 520 includes a light-colored metallic faceplate 508 with a beveled edge. In some embodiments, faceplate 508 may be manufactured of aluminum, with a light- colored anodized finish. [0078] FIG. 5F illustrates a side view of an exemplary faceplate 550 in accordance with an embodiment. Specifically, faceplate 550 has a small bevel along a perimeter of the front face, and may be manufactured of aluminum with a light-colored anodized finish.
[0079] FIG. 5G illustrates an exemplary power outlet in accordance with an embodiment. Specifically, power outlet 560 can include a white socket cover 562, which may be manufactured of a plastic material to have a glossy finish. Socket cover 562 may be semi-transparent white plastic to reveal light emitted by LEDs behind the socket cover (e.g., emitted light 564), without revealing the LEDs when they are not emitting light.
[0080] FIG. 6 illustrates a block diagram of an exemplary power outlet 600 in accordance with an embodiment. Power outlet 600 can include a flash storage device 606 that stores data and software instructions for operating power outlet 600, as well as a processing unit 602 and a memory device 604 for executing the instructions.
[0081] Power outlet 600 can include two power-output modules 614.1 and 614.2, and each power-output module 614 can include a power-output controller 616 (e.g., a Prolific PL7221 integrated circuit (IC) device), a relay 618, and a power outlet 620. Each relay 618.1 and 618.2 can be controlled individually, to enable or disable power to each of power outlets 620.1 and 620.2 independent of the other. Also, each of power outlets 620.1 and 620.2 can output up to 240 V. Processing unit 602 can enable or disable power transmitted via a power outlet 620 by controlling the corresponding power-output controller 616 via digital interface pins or via a serial bus, at which point power-output controller 616 can generate an electrical signal for opening or closing relay 618 to enable or disable the power transmission to power outlet 620.
[0082] Processing unit 602 can configure power-output controller 616 to monitor or sample physical quantities of the power signal on a power outlet 620, and can obtain the sampled value via the digital interface pins or the serial bus. The sampled physical quantities can include an electric current, an electric voltage, a real power, a reactive power, an apparent power, and/or other physical quantities of a power signal. Hence, processing unit 602 can use power-output controllers 616.1 and 616.2 to perform energy monitoring, or to perform analytics computations. The analytics computations can be performed to investigate an energy cost over time for devices attached to power outlet 620.1 or 620.2, or to investigate an energy usage for a given region (e.g., a bedroom) or for a given system (e.g., a home-theater system, or an HVAC system).
[0083] In some embodiments, power outlet 600 can include a current-regulating device (e.g., a TRIAC device, not shown) to control an amount of power that is provided to an external device. Power-output controller 616 can provide a trigger pulse to the current-regulating device for a determinable time interval, when the power signal's phase reaches a certain phase angle, to provide a desired power level to the external device. When power outlet 620 is coupled to a light fixture, for example, power-output controller 616 can control the current-regulating device as a means to adjust the light fixture's brightness level. As another example, when power outlet 620 is coupled to an induction motor (e.g., a ventilation fan), power-output controller 616 can control the current-regulating device as a means to adjust the rotational speed of the motor's shaft (e.g., the fan's blades).
[0084] Power outlet 600 can also include a serial port 608, such as for a UART serial interface, an I C serial interface, or any other serial interface now known or later developed. For example, power outlet 600 can implement a "dumb" power outlet that does not include a wireless communication module. Power outlet 600 can interface with a "smart" power outlet via serial port 608 to receive commands, and/or to communicate measurements made by a power-output controller 616.
[0085] In some other embodiments, power outlet 600 implements a "smart" power outlet that includes one or more modules for communicating with external devices over a computer network. For example, power outlet 600 can include communication modules 610, which can include an Ethernet module coupled to an Ethernet port (not shown), and/or can include or be coupled to a wireless module 612 (e.g., a Wi-Fi module, or a Bluetooth module). Hence, power outlet 600 can receive "events" from one or more remote devices, such as a temperature measurement, a motion-detection event, a central controller, etc. If the received events satisfy a rule's condition, processing unit 602 can execute the rule's action description to perform a desired action. The desired action can include, for example, measuring various parameters of a power-outlet module 614, and activating or disabling a power-outlet module 614. Power outlet 600 can also use serial port 608 to interface with one or more "dumb" power outlets to forward events from a network controller.
[0086] Power outlet 600 can also include a universal serial bus (USB) port 622 (e.g., via a micro-USB connector), which can be used to perform diagnostics on power outlet 600, to load firmware to power outlet 600, or to provision power outlet 600. A user can perform diagnostics, for example, by interfacing a personal computing device (e.g., laptop) to power outlet 600 via USB port 622, and running diagnostics software on the personal computing device. The diagnostics software can aggregate information from power outlet 600, can analyze this information to present configuration information to the user, and to detect or diagnose any malfunctions.
[0087] The user can provision power outlet 600 using USB port 622, for example, by attaching a USB drive (e.g., a flash drive) into USB port 622, such that this USB drive contains configuration and/or provisioning parameters (e.g., Wi-Fi parameters) for power outlet 600. The user can interact with power outlet 600 via a web page hosted by power outlet 600, or via a pre- installed application on a personal computing device that interfaces with power outlet 600.
When power outlet 600 detects configuration information in the USB drive, power outlet 600 can display a confirmation prompt to the user via the web page or application, which asks the user to confirm that he wishes to load the configuration information from the USB drive. If the user has set an administrator password, power outlet 600 can prompt the user to enter his password before loading the configuration information.
[0088] FIG. 7 illustrates an angled view of an exemplary power outlet 700 in accordance with an embodiment. Specifically, power outlet 700 can include a serial interface 702 (e.g., an I C interface), LED indicators 704, a reset button 706, and an "INIT" button 708. Serial interface 702 can include a 4-pin micro connector with electrical insulation, which can be used to interface power outlet 704 with a remote device (e.g., a power outlet or light dimmer).
[0089] When reset button 706 is depressed for a predetermined time interval (e.g., 10 seconds), a microprocessor of power outlet 700 initiates a power cycle. Also, when INIT button 708 is depressed for a predetermined time interval (e.g., 10 seconds), the microprocessor re- initializes the device to factory settings. In some embodiments, the microprocessor can be reinitialized to factory settings by loading a factory-installed firmware image into a flash storage device of power outlet 700.
[0090] LED indicators 704 can include two LED lights of different colors. In some embodiments, LED indicators 704 can include a red LED and a blue LED, which can each be turned on or off programmatically by a processor of power outlet 700. Hence, LED indicators 704 can emit a red light, a blue light, a purple light (e.g., when both red and blue LEDs are on), or no light (e.g., when neither the red or blue LED is on). For example, the red LED can be turned on when the top (or bottom) power outlet is activated, and the blue LED can be turned on when the bottom (or top) power outlet is activated. Hence, LED indicators 704 will be dark when none of the power outlets are activated, or may emit a purple light when both of the power outlets are activated.
[0091] In some embodiments, the color emitted by LED indicators 704 can be used to indicate a network connectivity, a network packet being transmitted, a network packet being received, a power source status, or any other user-defined condition or event. In some other embodiments, the color emitted by LED indicators 704 can indicate that an electrical attribute of an outlet satisfies predetermined criteria (e.g., a power level or current level is above or below a predetermined threshold). For example, the microprocessor may activate the red LED when the top outlet satisfies the predetermined criteria, and may activate the red LED when the bottom outlet satisfies the criteria. [0092] A microprocessor of power outlet 700 can also control LED indicators 704 based on a user-defined rule, such as to implement a night light functionality by turning on both LEDs. In some embodiments, the user-defined "night light" rule can turn on both LEDs during a predetermined time of day. Alternatively, a networked interfacing device can include or be coupled to a light sensor that measures a room's ambient light level. When the room's ambient light drops below a predetermined level, the interfacing device can send an event to one or more power outlets that are installed in the room via a computer network. This event can inform these power outlets that the room is dark. When a particular power outlet receives the event, the power outlet identifies a "night light" rule that is activated by this event, and can process the rule to turn on the power outlet's LEDs.
[0093] In some embodiments, power outlet 700 can include an optical code 710 and a secret number 712 printed over a portion of power outlet 700. For example, optical code 710 and secret number 712 can be printed over a portion of power outlet 700 that is to be covered by a faceplate for power outlet 700. Optical code 710 can encode a MAC address for power outlet 700, and can encode secret number 712. Secret number 712 can include, for example, 6 hexadecimal or alphanumeric characters. A user can scan optical code 710, such as via a device- provisioning application on a mobile device, to provision the power outlet 700 to operate within a device network. The user can enter secret number 712 into the device-provisioning application to complete the provisioning process. For example, power outlet 700 can use a built-in wireless device to host a closed Wi-Fi network, which the user can use to interface a personal computing device (e.g., a smartphone) to power outlet 700. The user can gain access to the closed Wi-Fi network by entering secret number 712 as the secret key.
[0094] As another example, power outlet 700 can host an open Wi-Fi network, which the user can use to establish a network connection between his personal computing device and power outlet 700. Alternatively, power outlet 700 can use any wireless technology to establish a peer- to-peer network connection with the personal computing device, such as near field
communication (NFC) or Bluetooth Low Energy. The user can run an application on his personal computing device to send and/or receive data to/from power outlet 700 over the network connection. The user can scan optical code 710 using an image sensor on his personal computing device, and the device signs the data sent to power outlet 700 using information encoded in optical code 710 (e.g., secret number 712). The application can use optical code 710 to generate a one-way secure hash value that is used to sign data. Alternatively, the application can use optical code 710 during a challenge-response handshake protocol with power outlet 700 that establishes a secure connection with power outlet 700. During this handshake protocol, the application and power outlet 700 can exchange digital signatures that are then used to sign any data transferred between the two devices.
[0095] In some embodiments, a plurality of unprovisioned devices (e.g., power outlets, light dimmers, thermostats, etc.) can each host an unsecured Wi-Fi network with a common Service Set Identification (SSID). The application can provision the device automatically (e.g., using an optical code and secret key pair which the user has previously scanned), or can interact with the user to present a sequence of device-provisioning steps. After power outlet 700 becomes provisioned, power outlet 700 will bring down its Wi-Fi network, which can allow the application to connect with any other unprovisioned device via the common SSID. The application will not detect a Wi-Fi network with the common SSID if no unprovisioned devices are within a predetermined distance to the personal computing device.
[0096] In some embodiments, an access point can host a device-provisioning Wi-Fi network with an SSID that is dedicated for provisioning devices. Each device can be pre- configured to connect to the device-provisioning Wi-Fi network by default (via the
predetermined SSID). The application can detect an unprovisioned device by joining this device- provisioning SSID, or by querying the access point while connected to the main Wi-Fi network (via a different SSID). While provisioning power outlet 700, the application can configure power outlet 700 to connect to the main Wi-Fi network. After power outlet 700 becomes provisioned, power outlet 700 will disconnect from the device-provisioning Wi-Fi network, and connects to the main Wi-Fi network.
[0097] Alternatively, when power outlet 700 joins the device-provisioning Wi-Fi network of the access point, the access point can redirect the network connection for power outlet 700 to a device-provisioning server that is in charge of provisioning devices into the network. The device-provisioning server can store pairs of optical codes and secret keys for each device that is to be provisioned or has been provisioned, and uses this information to provision power outlet 700. If the server does not have an optical code and secret key stored for power outlet 700, the device-provisioning server can notify a system administrator that an unrecognized device has been detected, and requests the administrator to scan optical code 710 and secret key 712 from power outlet 700 into the system.
[0098] FIG. 8 presents a flow chart illustrating a method for processing a measurement from a power outlet in accordance with an embodiment. During operation, the power outlet can select an outlet port to monitor (operation 802), and determines whether the port is active (operation 804). If the port is active, the power outlet proceeds to monitor an electrical attribute from the port (operation 806). The electrical attribute can include, for example, a power output, a voltage, a current, a power energy sum, and/or other electrical attributes. The power outlet can then send the measured electrical attributes to a device-monitoring controller (operation 808). In some embodiments, the device-monitoring controller can include a central computer that monitors an operating state for a plurality of devices, and can coordinate communication between these devices.
[0099] The power outlet then analyzes triggering conditions for one or more rules
(operation 810), and determines whether a triggering condition is satisfied by the measured electrical attributes (operation 812). If so, the system proceeds to obtain a rule associated with the triggering condition (operation 814), and performs the rule's action description (operation 816). The system then returns to operation 810 to analyze triggering conditions for other rules that remain to be processed.
[00100] FIG. 9 presents a flow chart illustrating a method for initializing a power outlet in accordance with an embodiment. During operation, the system can perform a boot-up process (operation 902), for example, in response to power returning to the home after an electrical blackout, or in response to a user turning on power to a home. The boot-up process can include loading a firmware image into memory, and initializing one or more electronic components of the power outlet. For example, the power outlet can initialize a wireless module to join a wireless network.
[00101] The power outlet can also select an outlet port to initialize (operation 904), and determines an initialization configuration for the outlet port (operation 906). The power outlet then determines if the port is to be enabled (operation 908). If so, the power outlet closes a relay for the port to enable power to the port (operation 910). Otherwise, if the port is not to be enabled, the power outlet can open a relay for the port to disable power to the port (operation 912). Light Dimmer/Switch
[00102] FIG. 10 illustrates an exemplary light dimmer 1000 in accordance with an embodiment. Light dimmer 1000 can include a capacitive-touch display 1002 that can receive user input from the user. The user input can include any gestures made by the user by touching and/or dragging a finger on capacitive-touch display 1002. The gestures can include a "tap" gesture on a portion of capacitive-touch display 1002, and a "swipe" gesture that moves along a vertical direction over a portion of capacitive-touch display 1002.
[00103] Light dimmer 1000 can also include a light-emitting diode (LED) indicator
1004, which can include two or more LEDs. For example, socket cover 1006 may be semi- transparent black plastic to reveal light emitted by the LEDs behind socket cover 1006, without revealing the LEDs when they are not emitting light. In some embodiments, LED indicator 1004 can include a red LED and a blue LED. When both LEDs are on, socket cover 1006 reveals a purple color. When only the red or blue LED is on, socket cover 1006 reveals a red or blue color, respectively. On the other hand, when no LED is on, socket cover 1006 does not reveal the LEDs. Light dimmer 1000 can also configure one or both LEDs to pulsate at a predetermined frequency, for example, to indicate that light dimmer 1000 is in an "off or "waiting" state.
[00104] A metallic faceplate 1008 can be attached over light dimmer 1000. In some embodiments, faceplate 1008 may be manufactured of aluminum, with a dark anodized finish or a light-colored anodized finish.
[00105] In some embodiments, capacitive touch display 1002 of light dimmer 1000 can include a display (e.g., a liquid crystal display (LCD)) to provide information to the user.
The display can present information to the user while the user is interacting with capacitive touch display 1002 to configure light dimmer 1000, for example, by displaying an illustration for the current dim level and/or for any other state information. Also, the user can configure light dimmer 1000 to display the state information when turned on (e.g., to display an illustration of a dim level when providing power to a light fixture), even if the user is not interacting with capacitive touch display 1002.
[00106] The display on capacitive touch display 1002 can also display other information for the user. For example, the display can present a user interface that allows the user to select a menu item, such as for a configuration setting, or for an installed application. The display can present one or more menu items per screen, and allows the user to navigate between screens by performing a vertical or horizontal swipe gesture. Once the user selects a menu item (e.g., by tapping on the menu item), light dimmer 1000 can present a user interface for the menu item on the display, which allows the user to configure or interact with the selected menu item (e.g., to adjust a configuration setting).
[00107] In some embodiments, a menu item may correspond to a configuration interface for an external device, such as for a different light dimmer associated with the same user. For example, light dimmer 1000 can present a user interface that illustrates a status for one or more external devices, such as light dimmers, power outlets, digital thermostats, sensors, etc. If the user selects a device from the user interface (e.g., by tapping on the device's icon on capacitive touch display 1002), light dimmer 1000 can present a device-configuring menu that allows the user to adjust the device.
[00108] If the selected device is a remote light dimmer, the device-device- configuring menu can allow the user to interact with capacitive touch display 1002 as if it were the remote light dimmer. Hence, the user can perform the advanced light-dimming gestures on light dimmer 1000, and have these gestures be interpreted and/or executed by the remote light dimmer. These gestures can correspond to device-configuring functions such as to program a default dim level, or can correspond to state-modifying functions such as to adjust a current dim level, or to turn the remote light dimmer on or off.
[00109] On the other hand, if the selected device is a power outlet, the device- configuring menu can allow the user to enable or disable power to the power outlet. The device- configuring interface can also allow the user to view a status of the power outlet, such as to view a snapshot of the current power consumption via a port of the power outlet, or to view power consumption statistics over a given time interval.
[00110] If the selected device is a digital thermostat, the device-configuring menu can allow the user to view a current temperature and/or thermostat settings for one or more zones. The user can also configure the thermostat settings for a zone, such as to set a temperature threshold for a heater and/or for an air-conditioning unit.
[00111] FIG. 11 illustrates a block diagram of an exemplary light dimmer 1100 in accordance with an embodiment. Light dimmer 1100 can include a flash storage device 1106 that stores data and software instructions for operating light dimmer 1100, as well as a processing unit 1102 and a memory device 1104 for executing the instructions. Light dimmer 1100 can also include a touch-sensitive user-interface 1122 and a microcontroller 1114 for controlling touch- sensitive user-interface 1122. Touch-sensitive user-interface 1122 can include one or more sensors 1126, a plurality of touch- sensitive sensors 1128, and a light-emitting diode (LED) indicator 1130.
[00112] LED indicator 1130 can include two or more LEDs to indicate at least four device states. For example, LED indicator 1130 can include a red LED and a blue LED. When both LEDs are on, LED indicator 1130 emits a purple color. When only the red or blue LED is on, LED indicator 1130 emits a red or blue color, respectively. On the other hand, when no LED is on, LED indicator 1130 does not emit light. These LED states can indicate the following four device states: "off," "standby," "switch," and "dimmer." The "off state indicates that the light dimmer is not receiving any power, and the "standby" state indicates that the light dimmer is receiving power but is not providing power to a light fixture. The "switch" state indicates that the light dimmer is providing power to the light fixture using relay 1118.1, and the "dimmer" state indicates that light dimmer is providing power to the light fixture using triac 1118.2.
[00113] Sensors 1126 can include a proximity sensor, a motion sensor, a temperature sensor, a humidity sensor, an ambient light sensor, and/or other sensor devices now known or later developed. The proximity sensor can detect when an object (e.g., a user's hand) is within a close proximity of touch-sensitive user-interface 1122, and generates an analog signal based on the proximity of the detected object to sensors 1126. For example, the proximity sensor can include an infrared proximity sensor, which emits an infrared signal from an infrared emitter, and generates the analog signal based on an amount of infrared light detected by an infrared detector (e.g., infrared light that reflected off the user's hand).
[00114] The motion sensor can include an ultrasonic motion sensor, a microwave motion sensor, a tomographic motion sensor, or any motion- sensing technology now known or later developed. When a user or an object moves in front of touch- sensitive user-interface 1122, the motion sensor can detect the motion and can generate a binary value that indicates that an object has been detected. In some embodiments, the motion sensor can generate an analog or digital value that indicates, for example, a change in an ultrasonic measurement, a change in a microwave measurement, etc.
[00115] Touch-sensitive sensors 1138 can include capacitive-touch sensors, resistive-touch sensors, or any touch-screen sensors now known or later developed. For example, when a user touches a respective capacitive-touch sensor (e.g., sensor 1128. ri), the touch- sensitive sensor detects an increase in capacitance on the surface of its touch screen, and generates an analog voltage which reflects the amount of capacitance that was detected.
[00116] A respective touch- sensitive sensor can include a jagged shape along one dimension, such as a plurality of chevron shapes adjoined along a horizontal dimension, and the set of touch-sensitive sensors 1128.1-1128. n can be arranged along a dimension of user-interface 1122 perpendicular to the jagged shape (e.g., along a vertical dimension of user-interface 1122). Further, two neighboring touch-sensitive sensors can be placed in close proximity, for example, so that a lowest point on one touch- sensitive sensor (e.g., sensor 1128.1) has a vertical coordinate along user-interface 1122 that is less than or equal to a highest point on a lower-neighboring touch-sensitive sensor (e.g., sensor 1128.2).
[00117] Alternatively, a respective touch- sensitive sensor can include any other shape suitable for implementing a touch-sensitive grid, and the set of touch- sensitive sensors 1128.1-1128. n can be arranged along two dimension of user-interface 1122 to create a touch- sensitive surface (e.g., a grid or any other user-interface pattern) associated with a pre-determined set of touch-surface gestures.
[00118] Touch-sensitive user-interface 1122 generates a digital output signal for each of proximity sensor 1130, touch-sensitive sensors 1128.1-1128. n, and sensors 1126. Touch- sensitive user-interface 1122 can include a circuit that provides a constant current source to charge each capacitive-touch sensor 1128. Touch- sensitive user-interface 1122 can also include an analog-to-digital converter (ADC) device or a Schmitt trigger device for each sensor, which converts the sensor's analog signal value to a digital binary signal that indicates whether the sensor is charged. Touch- sensitive user-interface 1122 can provide the digital binary signal to microcontroller 1114 via a parallel bus (e.g., a plurality of GPIO pins on microcontroller 1114), or via a serial bus (e.g., an SPI or an I C bus on microcontroller 1114).
[00119] Microcontroller 1114 can use CTMU to determine whether a user is touching a respective capacitive-touch sensor 1128. When a user touches a capacitive-touch sensor, the user's touch adds a small capacitance to the sensor's capacitor, which causes the current source to require a longer time duration to charge the sensor's capacitor. Microcontroller 1114 measures an amount of time it takes to charge each capacitive-touch sensor 1128, and determines whether a user is touching a respective sensor by determining whether the amount of time required to charge the sensor is greater than or less than a predetermined threshold time. Microcontroller 1114 determines that a user is touching the sensor if the time required to charge the sensor is greater than the predetermined threshold time, and determines that the user is not touching the sensor otherwise.
[00120] Microcontroller 1114 can periodically monitor the state for the various sensors of touch- sensitive user-interface 1122, for example, at approximately 15 millisecond intervals. In some embodiments, microcontroller 1114 samples the various sensors of touch- sensitive user- interface 1122 on or after the voltage from the alternating current (AC) power supply crosses the zero-voltage level, which reduces noise in the measurements from touch- sensitive user-interface 1122. If microcontroller 1114 determines that proximity sensor 1130 detects an object, microcontroller 1114 can activate a light source for touch-sensitive user- interface 1122 to allow the user to see user-interface 1122 while the user is entering a device- controlling command via user-interface 1122. Microcontroller 1114 can activate the light source, for example, by ramping up the brightness of the light source over a determinable time interval to a determinable level (e.g., to a fixed level, or to a level derived from an amount of ambient light).
[00121] Also, if microcontroller 1114 determines that a touch- sensitive sensor has detected an object's touch, microcontroller 1114 can determine a gesture based on the current state and the previous state of touch-screen user-interface 1122. For example, microcontroller 1114 can determine a current region of user-interface 1122 that the user is touching (e.g., the current state), and can determine a direction for a gesture based on a previous touch- sensitive sensor that detected an object's touch (e.g., the previous state). Once the user has completed his interaction with user-interface 1122, microcontroller 1114 can generate a gesture that indicates a speed and a direction of the user's gesture, and/or a distance traveled by the user's gesture. Thus, microcontroller 1114 may determine that the user is making an upward finger- swipe gesture or a downward finger-swipe gesture, as well as a speed and distance traveled by the finger-swipe gesture. [00122] If the user is not swiping his finger across the surface of touch-sensitive user-interface 1122 (e.g., the previous state did not involve the user touching or swiping across user-interface 1114), microcontroller 1114 can determine a region of user-interface 1122 that the user has touched. Microcontroller 1114 can generate and store a gesture that indicates the surface portion of user-interface 1122 that the user has touched, for example, using a numeric value that indicates a vertical coordinate of the user-interface 1122 touched by the user.
Processing unit 1102 can configure the power output to the light fixture to reach a light intensity that corresponds to the numeric value. Light dimmer 1100 can also include a vibrating mechanism (e.g., a vibrating motor) to provide haptic feedback to the user as the user swipes his finger across the surface of touch-sensitive user-interface 1122. This haptic feedback allows the user to feel a response that indicates the user's interaction with light dimmer 1100.
[00123] In some embodiments, processing unit 1102 periodically polls the sensor readings (e.g., at approximately 15 millisecond intervals) and/or gestures from microcontroller 1114. For example, microcontroller 1114 can send the current state of touch-sensitive user- interface 1122 to processing unit 1102, such that processing unit 1102 analyzes the current state and previous states of touch-sensitive user- interface 1122 to determine the user's gesture.
[00124] Also, processing unit 1102 can use the obtained data to select a set of rules to evaluate, and can perform an action associated with any rules whose conditions have been met. Processing unit 1102 can also select a set of remote devices that have subscribed to a piece of data (e.g., data for a detected motion and/or a detected gesture), and can send the piece of data to the selected devices using network addressing information associated with their corresponding network connections.
[00125] Light dimmer 1100 can include one or more communication modules 1108 for communicating with external devices. Communication modules 1108 can include or be coupled to a wireless module 1110 (e.g., a Wi-Fi module, or a Bluetooth module), and/or can include an Ethernet module coupled to an Ethernet port (not shown). Device architecture 280 can also include a serial port 1112 (e.g., an RS-232 jack for a UART port), which can be coupled to an external device, and can be used by processing unit 1102 to monitor and/or control the peripheral device. The peripheral device can include a "dumb" light switch or power outlet, an appliance (e.g., an HVAC system), or any electronic or computing device that can communicate via serial port 1112.
[00126] Light dimmer 1100 can also include power-controlling modules 1118 to control and/or regulate an output power signal, and can include a power-output controller 1116 to configure and monitor the power output by power-controlling modules 1118. Light dimmer 1100 can also include power terminals 1120 for providing the output power signal to an electrical load, such as a light fixture, an electric motor, an HVAC system, etc. In some embodiments, light dimmer 1100 implements a light switch, and power-controlling modules 1118 includes a relay 1118.1. Processing unit 1102 can configure microcontroller 1114 to close relay 1118.1 to provide power to an external load electrically coupled to power terminals 1120 (e.g., a light fixture), or to open relay 1118.1 to turn off power to the external load. Microcontroller 1114 opens or closes relay 1118.1 by configuring power-output controller 1116 to generate the electrical signals necessary for opening or closing relay 1118.1. Microcontroller can also configure power-output controller 1116 to monitor an amount of power dissipated by power- terminals 1120, for example, to periodically obtain a power measurement for an electrical load.
[00127] In some embodiment, light dimmer 1100 can function as a dimmer (to control an average voltage to a light fixture) or as a switch (to turn on or off power to a light fixture). When operating as a dimmer, processing unit 1102 can configure triac 1118.2 to provide up to 5 amps of current to a light fixture via power terminals 1120. When operating as a switch, processing unit 1102 can configure relay 1118.1 to provide up to 15 amps of current to the light fixture via power terminals 1120. The user can toggle the functionality of light dimmer 1100, for example, by pressing and holding a finger on touch- sensitive user-interface 1122 for a predetermined time interval (e.g., 10 seconds).
[00128] When light dimmer 1100 is configured to operate as a light switch, processing unit 1102 can close relay 1118.1 to enable power to a light fixture, and can open relay 1118.1 to turn off power to the light fixture. However, relay 1118.1 is oftentimes implemented as a mechanical switch that emits noise while opening or closing. In some embodiments, processing unit 1102 can use triac 1118.2 to silently enable or disable power to the light fixture.
[00129] When light dimmer 1100 is configured to operate as a light dimmer, processing unit 1102 can detect a light-adjusting gesture from a user (e.g., via microcontroller 1114), and configures microcontroller 1114 to adjust a brightness level for the light fixture. For example, as the user performs an upward finger swipe on touch- sensitive user-interface 1122, processing unit 1102 can determine a brightness level for the light fixture based on the current (or most recent) position, direction, and/or velocity of the user's finger on touch- sensitive user- interface 1122. Processing unit 1102 can select the highest brightness level if the user taps on touch- sensitive sensor 1128.1, or can select the lowest (or off) brightness level if the user taps on touch- sensitive sensor 1128.W.
[00130] Processing unit 1102 can configure microcontroller 1114 to adjust the power output transmitted by triac 1118.2 to correspond to the user's desired brightness level. For example, microcontroller 1114 can configure power-output controller 1116 and triac 290.2 to clip an alternating-current (AC) waveform to produce a phase-clipped waveform that effectively reduces a brightness level for a light fixture electrically coupled to power terminals 1120.
[00131] In some embodiments, processing unit 1102 can store a programmed brightness level for the user. The user can perform an intensity-configuring gesture to program the brightness level to a desired level once. For example, the intensity-configuring gesture can include the user pressing and holding a finger (or two fingers) on touch- sensitive user-interface 1122 for a predetermined time interval (e.g., 5 seconds), and then dragging his finger (or multiple fingers on a two-dimensional capacitive-touch sensor) up or down to reach the desired brightness level. The user can turn the light on or off by tapping anywhere on touch-sensitive user- interface 1122, which configures power-output controller 1116 to enable or disable power to power terminals 1120 at the programmed lighting level. The user can also set the programmed brightness level by interacting with an application on a mobile device (e.g., a smartphone) that communicates the brightness level to light dimmer 1100. Alternatively, the user can use a web browser to load a web page hosted by light dimmer 1100, and can set the programmed brightness level using the web page.
[00132] Further, processing unit 1102 can quickly ramp up or ramp down the brightness level if the user performs a fast upward or downward finger swipe. Alternatively, processing unit 1102 can perform fine-grained adjustments to the light fixture's brightness level if the user performs a slow upward or downward finger swipe, for example, to increase or decrease the brightness level by a finer granularity than can be achieved by tapping on any of touch-sensitive sensors 1128.
[00133] Light dimmer 1100 can use sensors 1126 to perform dynamic lighting control. Hence, light dimmer 1100 can turn on lights when the motion sensor detects a motion (e.g., when a user enters a room), and can turn off lights when no motion is detected for at least a predetermined time interval (e.g., the user has left the room). Light dimmer 1100 can also use the ambient-light sensor to auto-calibrate a dim level. For example, the dim level configured by a user can correspond to a brightness level in the room. Light dimmer 1100 can use the ambient- light sensor to adjust the phase-clipped waveform on triac 1118.2 based on the room's brightness to reach the user-configured brightness level. Hence, light dimmer 1100 can increase a power output to an aging bulb to maintain the user's desired brightness level. Also, light dimmer 1100 can adjust the phase-clipped waveform throughout the day to reach and retain the user's desired brightness level.
[00134] Light dimmer 1100 can also use motion sensor 1126 as part of a security system, or as part of an HVAC system. A security system can use motion detected by the motion sensor to compile a historical motion-sensing record. The security system can trigger a security measure if motion is detected when a user is not expected to be nearby, such as to record video from a camera in the same room as light dimmer 1100. An HVAC system can transition between an "active" (e.g., occupied) and "standby" (e.g., vacant) state based on whether motion has been detected via the motion sensor, or other motion sensors within the HVAC zone. The HVAC system can set the zone to a user's comfort level when in the "active" state, and can set the zone to a low-energy configuration when in the "standby" state.
[00135] Unlike typical light dimmers, light dimmer 1100 can also be used in a master/slave configuration to control one or more light fixtures. Typical light dimmers include a physical slider that controls a light fixture's state, and the state can only be changed when a user manually slides the physical slider up or down. Another dimmer cannot be used to control that same light fixture because it would interfere with the signals from the first dimmer. In some embodiments, light dimmer 1100 can have its local state modified either manually by a user swiping a finger over the surface of touch-sensitive user-interface 1122, or from a remote network device. For example, light dimmer 1100 can receive a command from a remote device (e.g., a central controller, or a remote light dimmer) that indicates a target output voltage or brightness level. Alternatively, light dimmer 1100 can process rules that configure a new brightness level for a light fixture. Light dimmer 1100 can detect an event or can receive an event that triggers the rule (e.g., a local event, or an event received from a central controller or a remote light dimmer), and processes the rule's action description to adjust the light fixture's brightness level.
[00136] In some embodiments, processing unit 1102 can control a light fixture that is not electrically coupled to power terminals 1120. When processing unit 1102 detects a gesture event performed by the user (e.g., via microcontroller 1114), processing unit 1102 can send the gesture event to a remote light dimmer, a power outlet, or an interfacing device that has subscribed to events from the local light dimmer. When the remote interfacing device receives the gesture event, the remote interfacing device can use the event information to control power to a light fixture based on a rule stored in the device's local rule repository.
[00137] In some embodiments, power-output controller 1116 also monitors an amount of current, an amount of power, and/or a phase of the power being transmitted via power terminals 1120. Microcontroller 1114 can calibrate power output controller 1116, based on the measured values, to stabilize the power transmitted via power terminals 1120. If microcontroller 1114 detects a change in the electrical load, for example due to a dimming light fixture, microcontroller 1114 can adjust power output controller 1116 to compensate for the change in the electrical load to reach a desired power output. Thus, microcontroller 1114 can use power output controller 1116 to implement a feedback loop that adjusts power to a light fixture to ensure a steady (non-fluctuating) light intensity, even as the light fixture ages over time.
[00138] Typical dimmers don't always work well with all bulb types. Using an incompatible bulb in a "dimmed" mode can cause the bulb to not emit a sufficient amount of light, or may cause the bulb to emit a "humming" noise. In some embodiments, light dimmer 1100 can detect when a light bulb is not compatible with a light-dimming functionality, when a light bulb has failed, or has started to fail. If a failed or failing bulb is detected, light dimmer 1100 can alert the user to replace the bulb. If an incompatible bulb is detected, light dimmer 1100 can alert the user that the bulb cannot be dimmed, and/or can transition into a "light switch" mode using either mechanical relay 1118.1 or solid-state triac 1118.2. Light dimmer 1100 can also use an energy-monitoring functionality of 1116 to determine a lowest possible dim level for a light bulb, and configures this dim level as a minimum "dim" level for the light fixture. Light dimmer 1100 can turn off power to the light fixture if a user issues a command to lower a light level below this minimum dim level.
[00139] In some embodiments, touch- sensitive user-interface 1122 can include a display device (e.g., a liquid crystal display (LCD) device). Also, touch- sensitive sensors 1128 can include a vertical array of capacitive-touch sensors (e.g., as displayed in FIG. 11), or can include a two-dimensional array or grid of capacitive-touch sensors (not shown). Touch- sensitive sensors 1128 can detect, in real-time, when a user is touching touch- sensitive user- interface 1122 with one or more fingers, and display device can display near-real time feedback to the user while the user interacts with user-interface 1122. For example, the display device can display an updated dim level as the user is performing a gesture to adjust a light fixture's dim level.
[00140] The display device can also display other information and/or other interactive UI elements to the user. For example, light dimmer 1100 can use the display device to present a device-configuring menu to the user, which allows the user to select a Wi-Fi network, and to enter Wi-Fi credentials for a secured network. The device-configuring menu can also allow the user to register a password that needs to be entered when making changes to the device, and can allow the user to configure whether configuration changes can be made over the Wi-Fi network. Light dimmer 1100 can also use the display device to display a device- provisioning menu, which can add light dimmer 1100 to controller (e.g., a server) that monitors, configures, and/or controls one or more devices in a smart-home network.
[00141] In some embodiments, the user can switch between the dimmer's default screen (which, for example, can indicate a current lighting level), the device-configuring menu, and the device-provisioning menu by performing a side-swipe gesture. In response to detecting a side- swipe gesture, light dimmer 1100 can animate a transition from one display screen to the next. This animation can include a screen-sliding effect, which slides at a horizontal rate that matches the user's side-sliding gesture. When the user selects a field of a display screen, light dimmer 1100 can present a data-input UI element that allows the user to enter characters into the input field. The data-input UI element can include or resemble a keyboard, a slider, an input wheel, or any other graphical user interface (GUI) element now known or later developed.
[00142] Light dimmer 1100 can also include a universal serial bus (USB) port 1132
(e.g., via a micro-USB connector), which can be used to perform diagnostics on light dimmer 1100, to load firmware to light dimmer 1100, or to provision light dimmer 1100. A user can perform diagnostics, for example, by interfacing a personal computing device (e.g., laptop) to light dimmer 1100 via USB port 1132, and running diagnostics software on the personal computing device. The diagnostics software can aggregate information from light dimmer 1100, can analyze this information to present configuration information to the user, and to detect or diagnose any malfunctions.
[00143] The user can provision light dimmer 1100 using USB port 1132, for example, by attaching a USB drive (e.g., a flash drive) into USB port 1132, such that this USB drive contains configuration and/or provisioning parameters (e.g., Wi-Fi parameters) for light dimmer 1100. The user can interact with light dimmer 1100 via a web page hosted by light dimmer 1100, or via a pre-installed application on a personal computing device that interfaces with light dimmer 1100. When light dimmer 1100 detects configuration information in the USB drive, light dimmer 1100 can display a confirmation prompt to the user via the web page or application, which asks the user to confirm that he wishes to load the configuration information from the USB drive. If the user has set an administrator password, light dimmer 1100 can prompt the user to enter his password before loading the configuration information. In some embodiments, touch- sensitive user-interface 1122 can include a display device, which the user can interact with to confirm that he wishes to perform diagnostics on light dimmer 1100, to load firmware to light dimmer 1100, or to provision light dimmer 1100.
[00144] FIG. 12 illustrates an angled view of an exemplary light dimmer 1200 in accordance with an embodiment. Specifically, light dimmer 1200 can include a serial interface 1202 (e.g., an I2C interface), LED indicators 1204, a reset button 1206, and an "INIT" button
1208. When reset button 1206 is depressed for a predetermined time interval (e.g., 10 seconds), a microprocessor of power outlet 1200 initiates a power cycle. Also, when INIT button 1208 is depressed for a predetermined time interval (e.g., 10 seconds), the microprocessor re-initializes the device to factory settings. In some embodiments, the microprocessor can be reinitialized to factory settings by loading a factory-installed firmware image into a flash storage device of light dimmer 1200.
[00145] LED indicators 1204 can include two LED lights of different colors. In some embodiments, LED indicators 1204 can include a red LED and a blue LED, which can each be turned on or off programmatically by a processor of light dimmer 1200. Hence, LED indicators 1204 can emit a red light, a blue light, a purple light (e.g., when both red and blue LEDs are on), or no light (e.g., when neither the red or blue LED is on). The color emitted by LED indicators 1204 can be used to indicate a network connectivity, a network packet being transmitted, a network packet being received, a power source status, or any other user-defined condition or event.
[00146] In some embodiments, the color emitted by LED indicators 1204 can indicate a status of light dimmer 1200, such as to indicate whether a light fixture is off (e.g., by turning on the red LED, or not turning on any LEDs), whether the light fixture is on (e.g., by turning on the blue LED), or whether the light fixture is being dimmed (e.g., by turning on the red and blue LEDs to emit a purple light).
[00147] A microprocessor of power outlet 1200 can also control LED indicators
1204 based on a user-defined rule, such as to implement a night light functionality by turning on both LEDs. In some embodiments, the user-defined "night light" rule can turn on both LEDs during a predetermined time of day. Alternatively, light dimmer 1200 can include a light sensor that measures the room's ambient light level. When the room's ambient light drops below a predetermined level, light dimmer 1200 can generate an event which indicates that the room is dark. Light dimmer 1200 can use this event to identify a "night light" rule that is activated by this event, and can process the rule to turn on the power outlet's LEDs.
[00148] Light dimmer 1200 includes four terminals (illustrated as wires in FIG. 12): a load terminal, a ground terminal, a hot terminal, and a neutral terminal. Light dimmer 1200 uses the neutral and hot terminals to power the electronics of light dimmer 1200, and uses the load and ground terminals to provide power to an external light fixture.
[00149] Serial interface 1202 can include a 4-pin micro connector with electrical insulation, which can be used to interface light dimmer 704 with a remote device (e.g., a power outlet or light dimmer). A "smart" device can include additional features that are not included in a "dumb" device, such as a wireless module, a motion sensor, a temperature sensor, etc. The smart device can send signals to a dumb device, to allow the dumb device to perform the same functions of a smart device. For example, dumb devices can access a network connection from a smart device. Also, smart devices can send sensor readings from a sensor to dumb devices that don't include the sensor. [00150] In some embodiments, light dimmer 1200 can include an optical code
1210 and a secret number 1212 printed over a portion of light dimmer 1200. For example, optical code 1210 and secret number 1212 can be printed over a portion of light dimmer 1200 that is to be covered by a faceplate for light dimmer 1200. For example, light dimmer 1200 can use a built-in wireless device to host a closed Wi-Fi network, which the user can use to interface a personal computing device (e.g., a smartphone) to light dimmer 1200. The user can gain access to the closed Wi-Fi network by entering secret number 1212 as the secret key.
[00151] As another example, light dimmer 1200 can host an open Wi-Fi network, which the user can use to establish a network connection between his personal computing device and light dimmer 1200. Alternatively, light dimmer 1200 can use any wireless technology to establish a peer-to-peer network connection with the personal computing device, such as near field communication (NFC) or Bluetooth Low Energy. The user can run an application on his personal computing device to send and/or receive data to/from light dimmer 1200 over the network connection. The user can scan optical code 1210 using an image sensor on his personal computing device, and the device signs the data sent to light dimmer 1200 using information encoded in optical code 1210 (e.g., secret number 1212). The application can use optical code 1210 to generate a one-way secure hash value that is used to sign data. Alternatively, the application can use optical code 1210 during a challenge-response handshake protocol with light dimmer 1200 that establishes a secure connection with light dimmer 1200. During this handshake protocol, the application and light dimmer 1200 can exchange digital signatures that are then used to sign any data transferred between the two devices.
[00152] In some embodiments, a plurality of unprovisioned devices (e.g., power outlets, light dimmers, thermostats, etc.) can each host an unsecured Wi-Fi network with a common Service Set Identification (SSID). The provisioning application on the user's personal computing device can provision one device at a time via the common SSID. After light dimmer 1200 becomes provisioned, light dimmer 1200 will bring down its Wi-Fi network, which can allow the application to connect with any other unprovisioned device via the common SSID. The application will not detect a Wi-Fi network with the common SSID if no unprovisioned devices remain.
[00153] In some embodiments, an access point can host an additional Wi-Fi network with an SSID that is dedicated for device provisioning. Each device can be pre- configured to connect to the device-provisioning Wi-Fi network by default. The application can detect an unprovisioned device by joining this device-provisioning SSID, or by querying the access point while connected to the main Wi-Fi network (via a different SSID). While provisioning light dimmer 1200, the application can configure light dimmer 1200 to connect to the main Wi-Fi network. After light dimmer 1200 becomes provisioned, light dimmer 1200 will disconnect from the device-provisioning Wi-Fi network, and connects to the main Wi-Fi network.
[00154] Alternatively, when light dimmer 1200 joins the device-provisioning Wi- Fi network of the access point, the access point can redirect the network connection for light dimmer 1200 to a device-provisioning server that is in charge of provisioning devices into the network. The device-provisioning server can store pairs of optical codes and secret keys for each device that is to be provisioned or has been provisioned, and uses this information to provision light dimmer 1200. If the server does not have an optical code and secret key stored for light dimmer 1200, the device-provisioning server can notify a system administrator that an unrecognized device has been detected, and requests the administrator to scan optical code 1210 and secret key 1212 from light dimmer 1200 into the system.
[00155] Light dimmer 1200 can also include a universal serial bus (USB) interface that allows a user to upload a configuration file. The USB interface can be accessed from behind a faceplate, such as on a side of light dimmer 1200. The USB signals can be isolated from fluctuations in the light dimmer's power signals, for example, by using opto-couplers to prevent variations on the power signals from causing fluctuations on the USB signals.
[00156] FIG. 13 presents a flow chart illustrating a method 1300 for processing a user input for adjusting a brightness level in accordance with an embodiment. During operation, the light dimmer can detect a user input from a capacitive-touch user interface (operation 1302), and analyzes the user input to determine a gesture (operation 1304). The gesture can include, for example, a tap gesture, a touch-and-hold gesture, and a swipe gesture. The tap gesture can include a touch-screen coordinate. The touch-and-hold gesture can include a touch-screen coordinate, and a time duration during which the touch screen was touched. The swipe gesture can include a starting coordinate, an ending coordinate, and a speed (or time interval) for the swipe gesture. The system then determines a target output lighting level based on the gesture (operation 1306). In some embodiments, the light dimmer samples the capacitive-touch user interface on or after the voltage from the alternating current (AC) power supply crosses the zero- voltage level, which reduces noise from the capacitive-touch user interface.
[00157] In some embodiments, a light fixture can be coupled directly to the local light dimmer. A light fixture can also be coupled to a remote light dimmer or power outlet that provides power to the light fixture. In some embodiments, the local light dimmer can control power to multiple light fixtures by sending commands to one or more remote devices that provide power to these light fixtures. Hence, the light dimmer can determine whether a target light fixture is coupled to a local power terminal (operation 1308), and if so, can adjust the power output of the power terminal based on the determined output level (operation 1310). The light dimmer can also determine whether a target light fixture is coupled to a remote device (operation 1312), and if so, the light dimmer can send the determined output level to the remote device (operation 1314).
[00158] FIG. 14 presents a flow chart illustrating a method 1400 for automatically adjusting an operation mode to accommodate a light fixture in accordance with an embodiment. Recall that a light fixture includes a mechanical relay that can output 15 amps of current, and includes a solid-state relay that can output 5 amps of current. The mechanical relay can be used to enable or disable power to an external load, whereas the solid-state relay can be used to adjust an amount of power that is provided to the external load. During operation, the light dimmer can monitor a power output of the power terminal (operation 1402), and determines whether the current is greater than 5 amps (operation 1404). If the current exceeds 5 amps, the light dimmer can transition to a "switch" mode to ensure that the external load does not draw more power than can be provided by a relay.
[00159] Some light fixtures may consume more than 5 amps of current while in dimming mode, but may consume less than 5 amps of current when completely on. Hence, during operation 1406, the light dimmer can transition to "switch" mode by setting the phase- clipped waveform to 100% (operation 1408). The light dimmer can monitor a power output of the power terminal once again (operation 1410), and again determines whether the current is greater than 5 amps (operation 1412). If setting the phase-clipped waveform to 100% does not drop the current to below 5 amps, the light dimmer can disable the solid-state relay (operation 1414), and enables the mechanical relay to provide up to 15 amps of current to the power terminal (operation 1416).
[00160] The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed.
[00161] The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium.
[00162] Furthermore, the methods and processes described above can be included in hardware modules. For example, the hardware modules can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), and other programmable-logic devices now known or later developed. When the hardware modules are activated, the hardware modules perform the methods and processes included within the hardware modules.
[00163] The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.

Claims

What Is Claimed Is:
1. A computer-implemented method, comprising:
selecting, by a digital thermostat, a zone to monitor;
obtaining temperature measurements from one or more network-accessible temperature sensors associated with the selected zone; and
adjusting the zone's temperature based on the obtained temperature measurements.
2. The method of claim 1, wherein adjusting the zone's temperature involves:
determining a target temperature range for the selected zone;
activating a heater for the zone in response to determining that at least one temperature measurement is below the target temperature range; and
activating an air conditioner for the zone in response to determining that at least one temperature measurement is above the target temperature range.
3. The method of claim 1, further comprising:
determining an occupancy state for the selected zone based on measurements from one or more network-accessible motion sensors associated with the zone;
setting the target temperature range to a standby temperature range in response to determining that the selected zone is not occupied; and
setting the target temperature range to an active temperature range in response to determining that the selected zone is occupied.
4. The method of claim 1, further comprising:
detecting a network- accessible sensor;
receiving a zone assignment for the sensor from a user; and
assigning the sensor to the user-specified zone.
5. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising: selecting, by a digital thermostat, a zone to monitor;
obtaining temperature measurements from one or more network-accessible temperature sensors associated with the selected zone; and
adjusting the zone's temperature based on the obtained temperature measurements.
6. The storage medium of claim 1, wherein adjusting the zone's temperature involves:
determining a target temperature range for the selected zone;
activating a heater for the zone in response to determining that at least one temperature measurement is below the target temperature range; and
activating an air conditioner for the zone in response to determining that at least one temperature measurement is above the target temperature range.
7. The storage medium of claim 1, wherein the method further comprises:
determining an occupancy state for the selected zone based on measurements from one or more network-accessible motion sensors associated with the zone;
setting the target temperature range to a standby temperature range in response to determining that the selected zone is not occupied; and
setting the target temperature range to an active temperature range in response to determining that the selected zone is occupied.
8. The storage medium of claim 1, wherein the method further comprises:
detecting a network- accessible sensor;
receiving a zone assignment for the sensor from a user; and
assigning the sensor to the user-specified zone.
9. A digital thermostat device, comprising:
a zone-selecting module to select a zone to monitor;
a temperature-monitoring module to obtain temperature measurements from one or more network-accessible temperature sensors associated with the selected zone; and
a temperature-adjusting module to adjust the zone's temperature based on the obtained temperature measurements.
10. The digital thermostat device of claim 9, wherein while adjusting the zone's temperature, the temperature-adjusting module is further configured to:
determine a target temperature range for the selected zone;
activate a heater for the zone in response to determining that at least one temperature measurement is below the target temperature range; and
activate an air conditioner for the zone in response to determining that at least one temperature measurement is above the target temperature range.
11. The digital thermostat device of claim 9, further comprising:
a zone-monitoring module to determine an occupancy state for the selected zone based on measurements from one or more network-accessible motion sensors associated with the zone; and
a temperature-configuring module to:
set the target temperature range to a standby temperature range in response to determining that the selected zone is not occupied; and
set the target temperature range to an active temperature range in response to determining that the selected zone is occupied.
12. The digital thermostat device of claim 9, further comprising:
a sensor-discovery module to detect a network-accessible sensor;
a user- interface device to receive a zone assignment for the sensor from a user; and a sensor-managing module to assign the sensor to the user- specified zone.
13. A computer-implemented method, comprising:
selecting, by a power outlet device, an outlet port to monitor;
measuring an energy output from the port;
analyzing triggering conditions for one or more rules to identify a rule triggered by the outlet port's energy output; and
performing the identified rule's action description.
14. The method of claim 13, further comprising:
obtaining a command to enable or disable the outlet port; and
performing the command to enable or disable the port.
15. The method of claim 14, wherein the command corresponds to one or more of: a command from a rule's action description;
a command from a remote network-accessible device;
a command from a controller that manages one or more network-accessible devices; and a command from a client device.
16. The method of claim 13, further comprising:
selecting an outlet port to initialize during a boot-up process; determining an initialization configuration for the outlet port;
responsive to determining that the initialization configuration indicates that the outlet port is to be enabled, closing a relay for the outlet port to enable power to the port; and
responsive to determining that the initialization configuration indicates that the outlet port is not to be enabled, opening a relay for the outlet port to disable power to the port.
17. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising: selecting an outlet port to monitor;
measuring an energy output from the port;
analyzing triggering conditions for one or more rules to identify a rule triggered by the outlet port's energy output; and
performing the identified rule's action description.
18. The storage medium of claim 17, further comprising:
obtaining a command to enable or disable the outlet port; and
performing the command to enable or disable the port.
19. The storage medium of claim 18, wherein the command corresponds to one or more of:
a command from a rule's action description;
a command from a remote network-accessible device;
a command from a controller that manages one or more network-accessible devices; and a command from a client device.
20. The storage medium of claim 17, further comprising:
selecting an outlet port to initialize during a boot-up process;
determining an initialization configuration for the outlet port;
responsive to determining that the initialization configuration indicates that the outlet port is to be enabled, closing a relay for the outlet port to enable power to the port; and
responsive to determining that the initialization configuration indicates that the outlet port is not to be enabled, opening a relay for the outlet port to disable power to the port.
A power outlet device, comprising:
-monitoring module to: select an outlet port to monitor; and
measure an energy output from the port;
a rule-selecting module to analyze triggering conditions for one or more rules to identify a rule triggered by the outlet port's energy output; and
a rule-processing module to perform the identified rule's action description.
22. The power outlet device of claim 21, further comprising a port-configuring module to:
obtain a command to enable or disable the outlet port; and
perform the command to enable or disable the port.
23. The power outlet device of claim 22, wherein the command corresponds to one or more of:
a command from a rule's action description;
a command from a remote network-accessible device;
a command from a controller that manages one or more network-accessible devices; and a command from a client device.
24. The power outlet device of claim 21, further comprising a port-configuring module to:
select an outlet port to initialize during a boot-up process;
determine an initialization configuration for the outlet port;
close a relay for the outlet port to enable power to the port in response to determining that the initialization configuration indicates that the outlet port is to be enabled; and
open a relay for the outlet port to disable power to the port in response to determining that the initialization configuration indicates that the outlet port is not to be enabled.
25. A computer-implemented method, comprising:
determining, by a light-dimmer device, a gesture performed by a user on a touch-screen user interface;
determining a target output lighting level based on the gesture; and
configuring an energy level for a target light fixture based on the target output lighting level.
26. The method of claim 25, comprising: monitoring an energy output of a power terminal to a light fixture;
determining whether a current output is greater than 5 amps; and
responsive to determining that the current output exceeds 5 amps, transitioning from a light-dimmer mode to a light-switch mode.
27. The method of claim 26, wherein transitioning from a light-dimmer mode to a light- switch mode involves configuring a solid-state relay to produce an undipped waveform.
28. The method of claim 26, wherein transitioning from a light-dimmer mode to a light- switch mode involves:
disabling a solid-state relay to the light fixture; and
enabling a mechanical relay to the light fixture.
29. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising: determining a gesture performed by a user on a touch-screen user interface;
determining a target output lighting level based on the gesture; and
configuring an energy level for a target light fixture based on the target output lighting level.
30. The storage medium of claim 29, comprising:
monitoring an energy output of a power terminal to a light fixture;
determining whether a current output is greater than 5 amps; and
responsive to determining that the current output exceeds 5 amps, transitioning from a light-dimmer mode to a light-switch mode.
31. The storage medium of claim 30, wherein transitioning from a light-dimmer mode to a light-switch mode involves configuring a solid-state relay to produce an undipped waveform.
32. The storage medium of claim 30, wherein transitioning from a light-dimmer mode to a light- switch mode involves:
disabling a solid-state relay to the light fixture; and
enabling a mechanical relay to the light fixture.
33. A light-dimmer device comprising:
a gesture-monitoring module to determine a gesture performed by a user on a touchscreen user interface;
an input-processing module to determine a target output lighting level based on the gesture; and
a light-controlling module to configure an energy level for a target light fixture based on the target output lighting level.
34. The light-dimmer device of claim 33, wherein the light-controlling module is further configured to:
monitor an energy output of a power terminal to a light fixture;
determine whether a current output is greater than 5 amps; and
transition from a light-dimmer mode to a light-switch mode in response to determining that the current output exceeds 5 amps.
35. The light-dimmer device of claim 34, wherein while transitioning from a light- dimmer mode to a light-switch mode, the light-controlling module is further configured to: configure a solid-state relay to produce an undipped waveform.
36. The light-dimmer device of claim 34, wherein while transitioning from a light- dimmer mode to a light-switch mode, the light-controlling module is further configured to: disable a solid-state relay to the light fixture; and
enable a mechanical relay to the light fixture.
PCT/US2015/019505 2014-03-07 2015-03-09 Digital thermostat, power outlet, and light dimmer WO2015134987A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461949918P 2014-03-07 2014-03-07
US61/949,918 2014-03-07
US201514642189A 2015-03-09 2015-03-09
US14/642,189 2015-03-09

Publications (1)

Publication Number Publication Date
WO2015134987A1 true WO2015134987A1 (en) 2015-09-11

Family

ID=52780024

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/019505 WO2015134987A1 (en) 2014-03-07 2015-03-09 Digital thermostat, power outlet, and light dimmer

Country Status (1)

Country Link
WO (1) WO2015134987A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107101333A (en) * 2017-04-28 2017-08-29 青岛海尔空调器有限总公司 Air conditioner and its threshold adjustment methods
WO2018009758A1 (en) * 2016-07-07 2018-01-11 Nicholas David Pennycooke Intelligent lighting control system electrical connector apparatuses, systems, and methods
WO2018053283A3 (en) * 2016-09-15 2018-06-07 Racepoint Energy, LLC System and methods for creating dynamic nano grids and for aggregating electric power consumers to participate in energy markets
CN108981068A (en) * 2018-08-09 2018-12-11 绵阳鼎飞益电子科技有限公司 A kind of intelligent control method of air-conditioning
US11112139B2 (en) * 2018-12-03 2021-09-07 Ademco Inc. HVAC controller with a zone commissioning mode
US11424641B1 (en) 2021-06-09 2022-08-23 Savant Systems, Inc. Flexible load management system
US11621580B2 (en) 2021-08-31 2023-04-04 Savant Systems, Inc. Microgrid switchover using zero-cross detection
US11941228B2 (en) 2021-08-31 2024-03-26 Savant Systems, Inc. Guidance set-up for companion module graphical display

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080134098A1 (en) * 2006-11-30 2008-06-05 Honeywell International Inc. Hvac zone control panel
US20090261174A1 (en) * 2007-06-22 2009-10-22 Butler William P Control system protocol for an hvac system
US20120217315A1 (en) * 2011-02-24 2012-08-30 Dane Camden Witbeck System for controlling temperatures of multiple zones in multiple structures

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080134098A1 (en) * 2006-11-30 2008-06-05 Honeywell International Inc. Hvac zone control panel
US20090261174A1 (en) * 2007-06-22 2009-10-22 Butler William P Control system protocol for an hvac system
US20120217315A1 (en) * 2011-02-24 2012-08-30 Dane Camden Witbeck System for controlling temperatures of multiple zones in multiple structures

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7026095B2 (en) 2016-07-07 2022-02-25 サバント システムズ インコーポレイテッド Electrical connectors for intelligent lighting control systems Devices, systems, and methods
US10932347B2 (en) 2016-07-07 2021-02-23 Racepoint Energy, LLC Intelligent lighting control system electrical connector apparatuses, systems, and methods
US20190239319A1 (en) * 2016-07-07 2019-08-01 Noon Home, Inc. Intelligent Lighting Control System Electrical Connector Apparatuses, Systems, and Methods
JP2019526885A (en) * 2016-07-07 2019-09-19 ヌーン ホーム,インコーポレイテッド Intelligent lighting control system electrical connector apparatus, system and method
US20180014388A1 (en) * 2016-07-07 2018-01-11 Locoroll, Inc. Intelligent lighting control system electrical connector apparatuses, systems, and methods
WO2018009758A1 (en) * 2016-07-07 2018-01-11 Nicholas David Pennycooke Intelligent lighting control system electrical connector apparatuses, systems, and methods
WO2018053283A3 (en) * 2016-09-15 2018-06-07 Racepoint Energy, LLC System and methods for creating dynamic nano grids and for aggregating electric power consumers to participate in energy markets
US11494852B2 (en) 2016-09-15 2022-11-08 Savant Systems, Inc. Dynamic management of critical loads
US10943310B2 (en) 2016-09-15 2021-03-09 Racepoint Energy, LLC Intelligent circuit breaker
US10956992B2 (en) 2016-09-15 2021-03-23 Racepoint Energy, LLC System and methods for creating dynamic nano grids and for aggregating electric power consumers to participate in energy markets
CN107101333A (en) * 2017-04-28 2017-08-29 青岛海尔空调器有限总公司 Air conditioner and its threshold adjustment methods
CN107101333B (en) * 2017-04-28 2019-12-06 青岛海尔空调器有限总公司 Air conditioner and threshold value adjusting method thereof
CN108981068A (en) * 2018-08-09 2018-12-11 绵阳鼎飞益电子科技有限公司 A kind of intelligent control method of air-conditioning
US11112139B2 (en) * 2018-12-03 2021-09-07 Ademco Inc. HVAC controller with a zone commissioning mode
US11609017B2 (en) 2018-12-03 2023-03-21 Ademco Inc. HVAC controller with a zone commissioning mode
US11424641B1 (en) 2021-06-09 2022-08-23 Savant Systems, Inc. Flexible load management system
US11817737B2 (en) 2021-06-09 2023-11-14 Savant Systems, Inc. Flexible load management system
US11621580B2 (en) 2021-08-31 2023-04-04 Savant Systems, Inc. Microgrid switchover using zero-cross detection
US11941228B2 (en) 2021-08-31 2024-03-26 Savant Systems, Inc. Guidance set-up for companion module graphical display

Similar Documents

Publication Publication Date Title
WO2015134987A1 (en) Digital thermostat, power outlet, and light dimmer
US10873632B2 (en) Methods, systems, and related architectures for managing network connected devices
US11811550B2 (en) Automatic scene creation using home device control
US9839099B2 (en) Intelligent lighting control apparatuses, systems, and methods
US10194512B2 (en) Network light switch with mechanical/electrical interface port
US9325516B2 (en) Power receptacle wireless access point devices for networked living and work spaces
US10460243B2 (en) Network device predictive modeling
US11329867B2 (en) Distributed system of home device controllers
US9916631B2 (en) Multi-purpose electronic switch
CA3057702C (en) User interfaces for remote management and control of network-connected thermostats
KR102020100B1 (en) Lighting controller
EP3417677B1 (en) Wireless switch
US20180080669A1 (en) Remote management of smart thermostat learning functionality
US11825304B2 (en) Intelligent lighting control system secure connection control apparatuses, systems, and methods
CN112368512A (en) Touch screen lighting system controller
KR102104437B1 (en) A controller and a method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15713268

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15713268

Country of ref document: EP

Kind code of ref document: A1