US20050055108A1 - Method and apparatus for providing distributed control of a home automation and control system - Google Patents
Method and apparatus for providing distributed control of a home automation and control system Download PDFInfo
- Publication number
- US20050055108A1 US20050055108A1 US10/969,344 US96934404A US2005055108A1 US 20050055108 A1 US20050055108 A1 US 20050055108A1 US 96934404 A US96934404 A US 96934404A US 2005055108 A1 US2005055108 A1 US 2005055108A1
- Authority
- US
- United States
- Prior art keywords
- scene
- create
- products
- automatically controlling
- devices
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B11/00—Automatic controllers
- G05B11/01—Automatic controllers electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2807—Exchanging configuration information on appliance services in a home automation network
- H04L12/2814—Exchanging control software or macros for controlling appliance services in a home automation network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
- H04L12/282—Controlling appliance services of a home automation network by calling their functionalities based on user interaction within the home
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25218—Broadcast mode, originator, destinator address, command, check data
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25232—DCS, distributed control system, decentralised control unit
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2642—Domotique, domestic, home control, automation, smart house
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2823—Reporting information sensed by appliance or service execution status of appliance services in a home automation network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L2012/2847—Home automation networks characterised by the type of home appliance used
- H04L2012/285—Generic home appliances, e.g. refrigerators
Definitions
- the present invention relates to the field of home automation and control systems and, more particularly, to a method and apparatus for providing distributed control of dynamically created home automation and control system scenes.
- Home automation and control systems are used to control the behavior of an environment such as a home or office building.
- Home automation and control systems allow home occupants to automate and control the use of electrical products and appliances in and around the house.
- Home automation and control systems create and launch “scenes,” also called house scenes, involving one or more products and appliances.
- Examples of the types of products and appliances that can be automated and controlled are lighting, entertainment, cooking, heating, air conditioning, window treatments, and landscaping.
- Examples of specific products and appliances that can be automated and controlled are lights, television sets, sound systems, coffee machines, ovens, furnaces, air conditioners, water heaters, humidifiers and lawn sprinklers.
- Each product or appliance can be set to a number of different states, i.e., on, off, and, if appropriate, an intermediate level.
- the controller of an electrical product or appliance together with its effect on the controlled electrical product or appliance, will be referred to as a “device.”
- the “load control button” on a device is the button on the device controller that directly controls or affects the electrical product or appliance.
- the controller may be a physically separate entity from the product or appliance being controlled, or the controller may be physically embedded or integrated into the product or appliance being controlled.
- One method used by current home automation and control systems is to divide the devices into groups that all respond in basically the same way to a command. Some groups are composed of like type device resources, and other groupings allow mixed type resources, but all like-type device resources are limited to the same actions, i.e., a group command received by like type device resources in the group will force each of those devices to the same state.
- This method does not provide the flexibility that in one scene some of the same type devices might be on and others off, while in another scene all of the devices might be on. Such an approach is, thus, limited to simple, synchronized scenes.
- a central controller is commonly used, with a scene being launched, or triggered, when the central controller detects the trigger event.
- the central controller In response to detecting the trigger event, the central controller sends messages to the devices that are members of the scene directing them to go to their respective scene states. If the central controller fails, scenes can no longer be triggered because the controller can no longer send the necessary messages to the scene member devices to produce the scenes. In effect, if the central controller fails, the entire home automation and control system is rendered unusable. This single point of failure is highly undesirable to users of such systems. Additionally, the use of a central controller creates a heavy load of network traffic, since the central controller must send a message to each scene member device individually. The message traffic on the communication network for a central controller based scene with many member devices grows proportionally with the number of devices.
- the central programming tool is typically specialized, in that it is limited to device types that were known or contemplated when the original home automation and control system was installed. Thus, the central programming tool cannot reconfigure the system to incorporate newly developed device types, such as new media players, environmental control devices, etc., for which the programming tool does not have the requisite programming instructions. Thus, adding such new devices necessitates upgrades to the central programming tool. Furthermore, the addition of devices, whether originally contemplated or not, may reach a number exceeding the central programming tool or central controller limitations for number of devices in a scene.
- a distributed home automation and control system method and apparatus creates and launches scenes in a way that does not increase scene launch message traffic proportionally to the number of devices in the scene and does not require someone or some entity in the programming process to understand the device type details of the system.
- Scenes are created system wide and may be called “house scenes.” “House” in this case means any type of premises, including homes, offices, boats, yards, etc.
- Each device in the system knows its own device-type details and is capable of dynamically learning the current state of those device-type details such that it can duplicate the current device state in a scene at a latter time without any external entity at any time knowing the device type-details.
- a programming tool or central controller learning the scene trigger(s) and scene state for each system device, each individual device learns its membership status in each house scene and the load state of the product or appliance controlled by the device.
- each house scene is assigned a unique house scene identifier.
- House scenes are created by each individual member device, when given an indication to learn a new house scene, locally saving its membership status and the load state of the product or appliance associated with the house scene identifier, the product or appliance load state being the current state of the device when the device is given the indication to learn a new scene.
- the device need not save any house scene information for that house scene identifier.
- a device in the network when a device in the network receives a broadcast scene launch command and the device membership status associated with the received house scene identifier indicates the device is a scene participant of that house scene, the device recalls the locally saved scene state associated with that house scene identifier.
- This allows one simple, short message containing the scene identifier to launch a scene in normal operation without regard to the number of scene members. The message does not tell the member devices how to implement a particular house scene, it only identifies the particular house scene to be launched.
- a house scene can be launched by another entity, such as software running on a personal computer or an external controller, that is able to broadcast a scene launch command containing the house scene identifier for that particular house scene. While the system house scene resource is most desirable when the scene launch is broadcast to the network, those skilled in the art will appreciate that for network protocols where network broadcast addressing is not robustly supported or desirable, a scene launch identifier message could be addressed to each scene member device, individually or in a combined addressing scheme.
- the invention provides distributed programming and control of a home automation and control system.
- Each system device maintains scene definitions describing the state settings of the device for each scene in which the device participates as a scene member. Because the scene state setting and programming logic is embedded within each device participant, the control and programming of the system is distributed, thereby eliminating the single point of failure found in previous home automation and control systems. While any device in the system may fail, the other devices will continue to know their scene state settings and operate normally when a scene launch command is received. While any device in the system may fail and not be reprogrammable, such failure will not prevent other devices from being reprogrammable. Other devices will continue to be reprogrammable.
- the present invention provides a method and apparatus for providing distributed house scene programming and distributed control of a home automation and control system.
- each device participating in a home automation and control system is embedded with control logic for providing distributed control. Through the control logic, each device maintains scene definitions describing the state of the device for each scene in which it participates.
- any device in the system When any device in the system receives a request to launch a scene, such as a scene trigger button press on one of the devices, the device broadcasts a scene state change message to all devices within the home automation and control system.
- the scene state change message identifies to each device a particular scene that should be launched.
- Each device in the system receives the message and determines whether the device is a participant in the scene. If the device is a participant in the scene, the device adjusts its state according to a scene definition associated with the scene stored in the device. In particular, the device may adjust a controlled electrical load, such as a light or appliance, according to the scene definition by turning the load on, off, or setting the load to some intermediate value. In this manner, a scene may be launched across an entire home automation and control network.
- a controlled electrical load such as a light or appliance
- the present invention also provides a related computer-readable medium and system for providing distributed control of a home automation and control system.
- FIG. 2 is a block diagram showing a microcontroller and related circuitry that provides distributed control functionality and a simple programming interface in an actual embodiment of the present invention.
- FIGS. 3A-3C are block diagrams showing illustrative switch devices utilized in an actual embodiment of the present invention.
- FIG. 4 is a block diagram showing the software architecture utilized in an actual embodiment of the present invention.
- FIG. 5 is a flow diagram showing a routine for locally capturing a house scene value in a device according to an actual embodiment of the present invention.
- FIG. 6 is a flow diagram showing a routine for conditional local capture of a house scene value in a device if that device is a member of the scene being programmed according to an actual embodiment of the present invention.
- FIG. 7 is a flow diagram showing a routine for capturing a house scene trigger in a device according to an actual embodiment of the present invention.
- FIG. 8 is a flow diagram showing a routine for providing normal mode house scene operation in a device according to an actual embodiment of the present invention.
- FIG. 9 is a state machine diagram showing the normal house scene operation of a device according to an actual embodiment of the present invention.
- FIG. 10 is a state machine diagram showing toggling a house scene launch between the activate and deactivate scene states of a device according to an actual embodiment of the present invention.
- FIG. 11 is a flow diagram showing a routine for processing a one-step resource capture indication message.
- the present invention is directed to a method and apparatus for providing distributed scene programming and distributed control of a home automation and control system.
- a device is provided for use in a home automation and control system that includes control logic for local storage of its house scene participation states. When multiple such devices are utilized throughout a home automation and control system, control of the system is distributed among the devices.
- FIG. 1 provides an overview of an illustrative home automation and control system 2 in which aspects of the present invention may be practiced.
- home automation and control includes, but is not limited to, home automation, home control, home networking, or connected home systems, which describe a home where products are not only connected or integrated with each other locally, but also across the Internet and via other networks.
- home automation and control system 2 is described herein as being implemented in a home environment, those skilled in the art should appreciate that such systems may be similarly deployed in a business, boat, factory, or other premises where environmental automation is desired.
- the home automation and control system 2 typically comprises a number of participating devices connected together by a common bus 4 , or some other communication means.
- the bus 4 comprises typical household wiring.
- IR infrared
- RF radio frequency
- the devices connected to the bus 4 and participating in the home automation and control system 2 may comprise a wide variety of devices for performing a wide variety of functions.
- such devices may include a thermostat control device 6 for controlling temperature, a sensor port device 8 for detecting motion, light, sound, or other activity, a switch device 10 for triggering scenes or controlling an attached load, and a control port device 12 for controlling an attached load, such as a lamp, appliance or motor.
- such devices may include a receiver port device 14 for triggering scenes based on IR or RF signals received from a wireless remote control 16 operated by a user 18 .
- External controllers and systems 24 may also participate in the home automation and control system 2 through the use of a PC Port device 22 produced by C-SMART LLC of Las Cruces, N. Mex.
- the PC Port device 22 provides an interface between devices compatible with the home automation and control system 2 , and devices from other manufacturers that are not natively compatible with the home automation and control system 2 .
- the user 18 may interact with the home automation and control system 2 through the devices. For instance, the user 18 may utilize the switch device 10 to control a load connected to a control port device 12 or to trigger or launch a house scene. The user 18 may also interact with the home automation and control system 2 through the use of a personal or Internet gateway computer 20 .
- the personal or Internet gateway computer 20 is connected to the bus 4 and may participate in the home automation and control system 2 through the use of a PC Port device 22 .
- the PC Port device 22 provides bi-directional communication support for the personal computer 20 . In this manner, a user 18 can interact with the home automation and control system 2 through the computer 20 , which is equipped with appropriate software, to interrogate devices, create or launch scenes, and perform other functions.
- the PC Port device 22 provides bi-directional communication support for the personal computer 20 .
- a user 18 can interact with the home automation and control system 2 through the computer 20 , which is equipped with appropriate software, to interrogate devices, create or launch scenes.
- the user 18 may also interact with the home automation and control system 2 through the use of a tabletop controller 26 to launch scenes.
- the home automation and control system illustrated in FIG. 1 does not rely on a central controller. Rather, control is distributed by adding intelligence to each device and locally storing the state for all scenes the device participates in. As will be described below with respect to FIG. 2 , this intelligence takes the form of a microcontroller and other circuitry that provides functionality for distributing control of the home automation and control system 2 to each of the devices in the system.
- FIG. 2 an illustrative microcontroller and related control logic will be described that provides distributed control functionality and a simple programming interface in the actual embodiment of the present invention described herein.
- the microcontroller and associated circuitry shown in FIG. 2 is incorporated into each device in a home automation and control system. By incorporating the same such circuitry in each device, control of the home automation and control system may be distributed to each device.
- the house scene programming method of the invention is protocol independent and may be implemented using many types of protocols, such as the Simple Control Protocol, the Universal Plug and Play protocol which is run on a Local Area Network (LAN), the IEEE-1394 protocol, and other protocols known to those skilled in the art.
- the current embodiment applies this system house scene resource method using as its base communication protocol the CEBus protocol and Home Plug and Play protocol (“HPnP”), both from the CEBus Industry Council, Inc.
- HPnP Home Plug and Play protocol
- At the heart of each device is a CEBus® microcontroller 30 .
- the CEBus® microcontroller 30 comprises a central processing unit 62 and internal memory 64 for executing user programs, paired with functionality for interfacing with a power-line networking protocol, such as the CEBus® protocol from the CEBus® Industry Council, Inc.
- a power-line networking protocol such as the CEBus® protocol from the CEBus® Industry Council, Inc.
- the CEBus® standard (EIA-600) is an open standard for home automation that defines a common language for device communication over various media, including power lines.
- the CEBus® protocol is utilized for device communication in the actual embodiment of the present invention described herein, other types of protocols may also be utilized.
- the CEBus® microcontroller 30 comprises a CEWay PL-One from the Domosys Corporation of Sainte-Foy, Quebec, Canada.
- the CEWay PL-One is a power line transceiver integrated circuit that integrates the CEBus® physical layer and embeds an 8052 microcontroller core.
- the CEWay PL-One includes 256 bytes of internal data memory, three 16-bit timers/counters, a full duplex serial port, and the ability to access up to 64 kb of external data memory and up to 64 kb of external code memory.
- the CEWay PL-One is paired with an external random access memory (“RAM”) 32 , an external read-only memory (“ROM”) 34 , and a writeable non-volatile memory 36 , such as flash memory.
- RAM random access memory
- ROM read-only memory
- the non-volatile memory 36 may be used to store and retain scene settings for the device when power is removed.
- These memory devices may also store computer-readable instructions, data structures, program modules, or other data necessary for providing the functionality described herein.
- the CEBus® microcontroller 30 is also paired to a load 50 through a load controller 52 .
- the load 50 comprises an electrical load, such as that provided by a lamp, electrical equipment, or other home appliance.
- the load controller 52 may be capable of sensing the level of the load 50 and is capable of setting the load 50 to a particular level.
- the load controller 52 communicates to the CEBus® microcontroller 30 so that sensing the level of the load 50 or setting the load 50 to a particular level may be accomplished under programmatic control.
- the load controller 52 may comprise a triac, for gradually varying the level of a load, or a relay for switching a load on or off.
- the CEBus® microcontroller 30 also interfaces with several input and output devices.
- the CEBus® microcontroller 30 interfaces with a light emitting diode (“LED”) controller 44 .
- the LED controller 44 provides functionality for driving one or more LEDs mounted on the device. As will be described in greater detail below, the LEDs may be used to provide an indication to the user as to whether the device is in a normal operation mode, a programming mode, or in another state.
- the CEBus® microcontroller 30 also receives input from a number of front panel switches 46 .
- the front panel switches 46 may be mounted on a panel of the device accessible to the user. These switches may be utilized to control a local load 50 , or to trigger a scene that includes other devices.
- a dedicated setup button 42 may be provided for placing the device into HPnP network configuration modes. According to the actual embodiment of the present invention described herein, the setup button 42 is located behind a face plate of the device to prevent inadvertent selection of the programming mode.
- Other physical inputs 48 may also be provided to the CEBus® microcontroller 30 , such as a timer.
- the front panel switches 46 and the setup button 42 are described in greater detail below with respect to FIGS. 3A-3C .
- the switch device 10 provides a primary interface for a user to the home automation and control system.
- the switch device 10 may be utilized by the user to control a local load, to program a scene, and to trigger a scene.
- the switch device 10 including the CEBus® microcontroller and related circuitry, is mountable within a standard wall-mount switch plate receptacle.
- the switch device 10 is described herein as the primary interface to the home automation and control system, the functionality and interface provided by the switch device 10 for controlling loads, programming scenes, and launching scenes may be similarly provided by other types of devices.
- the switch device 10 includes the CEBus® microcontroller and related circuitry for interfacing with the home automation and control system and for providing the user interface.
- the switch device 10 also includes one or more buttons 70 A- 70 B.
- one of the buttons, such as 70 A is dedicated for local load control.
- the local load control button may utilize a dimmer to gradually change the value of the local load to which the switch is connected, such as a light.
- the local load control button may be utilized in connection with a relay for turning the local load on or off.
- the load button may be held down to gradually ramp the local load up from its current state or to gradually ramp the local load down.
- the ramp up continues until the load button is released, or until it reaches its maximum value state.
- the ramp down continues until the load button is released, or until it reaches its minimum value state.
- the ramp direction, up or down toggles each time the load button is pressed.
- the switch device 10 may be provided in a three-button 70 A- 70 C or four-button 70 A- 70 D configuration as shown in FIGS. 3B and 3C , respectively.
- Other configurations of the buttons on the switch device 10 will be apparent to those skilled in the art.
- the switch device 10 also includes a visible LED 74 .
- the LED 74 comprises a tri-state LED capable of displaying the colors red, amber, and green.
- the LED 74 provides a visual indication to a user regarding the current state of the switch device 10 . For instance, one color of the LED 74 may indicate to the user that the switch device 10 is in a programming state and another color may indicate that the switch device 10 is in a normal operating state.
- the LED 74 may also be flashed in patterns in combination with the colors to provide other types of notifications.
- the LED 74 is controlled by the LED controller 44 described above with reference to FIG. 2 .
- the switch device 10 also comprises a setup button 42 .
- the setup button 42 is utilized to place the switch device 10 into one or more programming modes. In order to avoid inadvertent selection of the setup button 42 , preferably, the button is positioned so as to avoid accidental presses. In the actual embodiment of the invention the setup button is mounted behind a switch device cover 78 . In order to access the setup button 42 , therefore, a user must remove the retaining screws and the switch device cover 78 . If the local load control button utilizes a dimmer then the switch device 10 also includes an air-gap switch 72 for electrically isolating the local load from the power source.
- FIG. 4 illustrates a software architecture for implementing aspects of the present invention.
- each device utilized in a home automation and control system includes a microcontroller and related circuitry for distributing control of the home automation and control system to each device and for providing a simple programming (SPI) interface.
- SPI simple programming
- each device implements the CEBus® protocol 80 for low-level communication.
- the CEBus® protocol uses 120 v, 60-cycle, electrical wiring to transport messages between devices.
- the CEBus® protocol 80 uses spread spectrum technology to overcome communication impediments found within electrical power lines. Spread spectrum signaling works by spreading a transmitted signal over a range of frequencies, rather than using a single frequency.
- the CEBus® protocol 80 spreads its signal over a range from 100 Hz to 400 Hz during each bit in a data packet. However, instead of using frequency hopping or direct sequence spreading, the CEBus® protocol 80 sweeps through a range of frequencies as it is transmitted.
- the CEWay PL-One from the Domosys Corporation implements the physical layer of the CEBus® protocol 80 . Other layers of the CEBus® protocol 80 may be implemented in software.
- the Home Plug and Play protocol 82 implements the Home Plug and Play Specification that provides a uniform implementation for using the Common Application Language (“CAL”) (EIA-721), from the Electronic Industries Alliance (“EIA”), as a language for inter-device communication.
- CAL is a high-level command language used by devices for communication over CEBus®.
- the Home Plug and Play protocol 82 provides uniform implementation rules for CAL, accommodates various communication protocols so that it works with multiple home network transports, defines common household objects through an object-oriented language, formalizes status, listener, and request objects, uses loose coupling to share status reports, and provides other functionality as known to those skilled in the art.
- a house scene system resource 84 , a dynamic resource role model 86 , and a simple programming interface (“SPI”) 88 all sit above the Home Plug and Play protocol 82 . While the house scene system resource 84 , the dynamic resource role model 86 and the SPI 88 can be implemented independently of each other, they are preferably used together. When used together, the house scene system resource 84 , the dynamic resource role model 86 , and the simple programming interface 88 maximize the benefits provided separately by each of these elements. Therefore, all three are used in the preferred and actual embodiment of the present invention described herein.
- the house scene system resource 84 when combined with the SPI 88 creates both distributed programming and distributed control with no single point of failure.
- the dynamic resource role model 86 enables a more efficient and compact implementation of the house scene system resource 84 and the SPI 88 .
- the dynamic resource role model 86 provides resource management for subscriber-publisher based automation and control system protocols, such as the CEBus 80 and Home Plug and Play 82 .
- subscriber-requester based protocol also called subscriber-publisher protocol
- the system consists of device resources made up of “objects” that interoperate with each other depending on their role.
- the subscriber or member role provides a way for a device resource to be affected by other devices.
- the requester role provides a way for a device to affect other devices. In normal operation, requester objects from one resource send commands to associated subscriber resource objects.
- the dynamic resource role model 86 provides dynamic resource object role selection, enables new roles, gives resources the ability to assign allowed roles and provides for role protection.
- the dynamic resource role model 86 allows the same resource object to have multiple roles.
- a resource object with both requester and subscriber roles can both affect and be affected by one or more resources.
- the ability for a resource object to function both as a requester and a subscriber simplifies the implementation of system-wide resources such as house scenes that, unlike device specific resource objects, need system wide resource status feedback.
- the dynamic resource role model 86 provides efficient system wide system resource status updating in the preferred and actual embodiment of the present invention. Further details about the dynamic resource role model 86 are discussed in U.S.
- the simple programming interface (“SPI”) 88 provides a simple and consistent user interface for programming scenes and multi-ways within a home automation and control system.
- the SPI allows unlimited scene member adjustments before finalizing a scene and automatically keeps track of all scene members, thereby reducing scene programming time and error rate.
- the SPI creates uniquely identified scenes by putting all devices in the home automation and control system in a system wide scene programming mode when starting a programming session. Each and every scene member device is adjusted as many times as desired in any order. When all member devices have been adjusted to the final desired states, a trigger for the scene is selected, completing that programming session. At the end of a programming session, each device knows if its load button has been used to adjust an associated load since the start of the last programming session and not subsequently removed as a scene member.
- the device knows that it is part of the scene being programmed and that the device load control state value in the house scene is the current device load control state value. Devices also know that if they have not been adjusted since the start of the last system programming session or have not been adjusted since they were last removed from the scene, they are not part of the scene being programmed in this programming session.
- the selection of the scene trigger initiates the capture of the created scene, ends the current programming session, and starts a new programming session. Further details of the SPI can be found in U.S. patent application Ser. No. 10/154,403, filed May 22, 2002, and entitled “Method and Apparatus for Providing Distributed Scene Programming in a Home Automation and Control System,” (Attorney Docket No. MSFT118856), the subject matter of which is incorporated herein by reference.
- the house scene system resource 84 is described in greater detail below with respect to FIGS. 5-10 .
- the house scene system resource 84 draws on both the standard Home Plug and Play protocol 82 and the CEBus protocol 80 to perform the needed functionality.
- the house scene system resource 84 also draws on both the SPI 88 and the dynamic resource role model 86 to maximize the benefits of the house scene system resource 84 functionality.
- the present invention is protocol independent and may be implemented using many types of protocols, including, but not limited to, the Simple Control Protocol, the Universal Plug and Play protocol for a Local Area Network (LAN), the Home Plug and Play protocol known as HPnP, the IEEE-1394 protocol, Consumer Electronics Bus known as CEBus, PowerBus, and other protocols known to those skilled in the art.
- the actual embodiment of the invention described herein uses as its base communication protocol the CEBus protocol 80 from the CEBus Industry Council, Inc.
- the CEBus protocol is expanded by the Home Plug & Play protocol 82 , also from the CEBus Industry Council, Inc.
- the CEBus protocol expanded by the HPnP protocol provides a uniform implementation for using the Common Application Language (“CAL”) (EIA-721), from the Electronic Industries Alliance (“EIA”), as a language for inter-device communication.
- CAL is a high-level command language used by devices for communication over CEBus®.
- the Home Plug and Play protocol provides uniform implementation rules for CAL, accommodates various communication protocols so that it works with multiple home network transports, defines common household objects through an object-oriented language, formalizes status, listener, and request objects, uses loose coupling to share status reports, and provides other functionality as known to those skilled in the art.
- the CEBus defined CAL household objects are based on distinct device subsystems that are modeled as resources. Each resource subtype has its own different resource contexts and objects.
- the actual embodiment using the CEBus and HPnP protocol defines a system “house scene” resource also called a house scene context.
- the actual embodiment uses the HPnP defined context channel number method with the house scene resource for the unique scene identifier.
- Each house scene stored by a device requires a separate house scene resource copy or instance in the device.
- the device requires an internal device resource instance for each desired house scene.
- These house scene resource instances are in addition to the applicable CEBus subsystem resource in a device, and act in parallel with the device specific subsystem resource.
- Each device has multiple instances of the house scene resource, and each resource instance is capable of being assigned a unique house scene resource channel number.
- the device internal resource instance most recently commanded to action has control over the product or appliance controlled by the device controller at any moment. Since the scene “in totality” is the system resource, the devices only have to understand the house scene resource context and objects in order to launch and/or be a participant of a house scene. As long as a totally new device understands the house scene resource, it can be included in a scene with any other subsystem device that understands the house scene resource.
- An existing device can trigger a house scene containing a new device that may have been created, developed or thought of long after the trigger device was deployed, because the existing device does not need to understand how to communicate with the new device, only with the new device's house scene resource. No device specific subsystem instance is actually required in a device in order to be a participant of a house scene.
- CEBus subsystems cannot talk to each other without an interpreter such as a central controller or a programming tool. While an interpreter can overwrite the normal CEBus subsystem communication to control a different subsystem type, multiple different subsystem types cannot be controlled.
- CEBus attempts to reduce the number of resource commands needed for one scene by “lumping” together devices so that they all act as a group to achieve the same end state. To achieve individual independent state values, individual device control is required.
- the HPnP protocol was created to solve CEBus problems, and makes it easier to group together separate resources into zones with unique channel numbers assigned to each zone. The zone members act in unison in the same manner in response to commands sent with their associated zone channel number.
- HPnP extension only extends the individual resource control mindset. For example, a scene launch source employing CEBus with HPnP that needs to activate 5 subsystems in a particular scene needs to send 5 different messages originating in 5 different internal contexts to individually control each subsystem type.
- the HPnP state vector allows one compound command to include sending all the sub-state information for each different subsystem in the scene at once. But if a new subsystem type is added, the scene launcher must be upgraded to know or be programmed to know how to address the new subtype, or the new subtype cannot be added to the scene.
- devices participate in house scenes as scene members or scene triggers.
- a device may both trigger a scene and be a member of that scene, only trigger that scene, only be a scene member, or not be a participant in a scene.
- FIG. 5 illustrates a routine 500 showing house scene member creation using a one-step indication according to the actual embodiment of the present invention described herein.
- Routine 500 starts at block 502 where a device is given an indication to learn or capture its scene member state for a house scene associated with the provided house scene identifier.
- Routine 500 then proceeds to block 504 where the device saves the current device load state as the house scene load state scene associated with the provided house scene identifier.
- the actual embodiment of the present invention described herein uses as the indication the receipt of a special message from the network, called macro 21 .
- Macro 21 is one of the available macro numbers defined by CEBus 80 as reserved for manufacturer specific functions. Macro 21 contains within it the house scene identifier and house scene participation status, in this case house scene membership.
- Those skilled in the art will appreciate that the exact form of the indication provided may vary and may depend at least partially on the protocol implemented.
- a manual indication may be given to a device to learn or capture its scene member state for a house scene.
- the indication used depends on the manual user programming interface implemented.
- the actual embodiment of the present invention described herein uses the SPI 88 as its manual user programming interface, where the indication is provided in two parts.
- the device receives a device specific manual indication that the device is a scene member that sets the device to the desired scene state, and a later system wide indication to member devices to capture the scene.
- FIG. 6 illustrates a routine 600 showing house scene member creation using SPI 88 indications according to the actual embodiment of the present invention described herein.
- Routine 600 starts in block 602 where a device receives an indication to capture its scene member state for a house scene.
- the indication that the SPI sends is the HPnP 82 macro 20 binding macro containing the house scene channel number that is the house scene identifier.
- the macro 20 command indication is broadcast by a device in SPI scene programming mode after a trigger button on that device is pressed to capture a scene during a scene programming session, and the trigger device has acquired a house scene identifier for the scene to be captured.
- the routine 600 proceeds to block 604 where a test is made to determine if the receiving device is a member based on previously received member indications, such as an adjustment on the load. If the device is a scene member of the house scene being captured, the routine 600 moves from block 604 to block 606 where the device saves the current device load state as the house scene load state scene associated with the provided house scene identifier. If the device is a not a member of the house scene being captured, the routine 600 branches from block 604 to block 608 where the scene capture ends because there is no scene membership to capture on the device.
- FIG. 7 illustrates a routine 700 showing house scene trigger creation using SPI 88 indications according to the actual embodiment of the present invention described herein.
- Routine 700 starts in block 702 where a device is given an indication, such as a press on a trigger button on the device during a SPI 88 scene programming session, to select its trigger button as a scene trigger for a house scene.
- the routine 700 then proceeds to block 704 where it acquires the house scene identifier for the scene.
- trigger buttons may have fixed house scene identifiers associated with them, or a trigger button may learn a system resource house scene identifier to be associated with the actuating trigger button.
- the illustrated routine does not have a predefined house scene identifier associated with each trigger button; therefore, the trigger button must obtain a house scene identifier at the time when it is associated with a house scene.
- the house scene identifier is acquired by using the identifier of a copied house scene, if in SPI copied scene mode, or by hailing for an unused house scene identifier in the standard method for acquiring a resource identifier provided by the CEBus protocol 80 and HPnP protocol 82 standards in SPI new scene mode. This process is referred to as resource channel hailing in the HPnP protocol 82 .
- resource channel hailing in the HPnP protocol 82 .
- the routine 700 proceeds to block 706 where the device associates the selected trigger button with the acquired house scene identifier.
- the actual embodiment of the present invention also uses the receipt of a special message from the network, called macro 21 , as an indication to select a trigger button for a house scene.
- macro 21 is one of the available macro numbers defined by CEBus 80 as reserved for manufacturer specific functions. Macro 21 contains within it the house scene identifier and house scene participation status, in this case as house scene trigger.
- FIG. 8 illustrates a routine 800 showing a house scene launch during normal operation according to the actual embodiment of the present invention described herein.
- the routine 800 starts in block 802 where a test is made to determine if an indication to launch a house scene, such as pressing a scene trigger button on the device, has been received. If a launch scene indication has been received, the routine 800 branches to block 804 where a scene launch command for the house scene associated with that trigger button is broadcast. Then the routine 800 proceeds to block 806 . If a local launch scene indication has not been received, the routine 800 also proceeds to block 806 .
- a test is made to determine if a scene launch command has been received, either locally or from a remote source and, if received, if the device is a member of the identified house scene. If the device is a member of the identified house scene, the routine 800 proceeds to block 808 where the device sets its load to the load state associated with the house scene identifier. If the device is not a member of the identified house scene, no further action is taken.
- a device may be a member of many house scenes.
- the load of a device is controlled by the most recent action of a local load adjustment or the most recent scene launched that the device is a member of.
- a device maintains knowledge of the scene identity currently in control of the device load in the manner shown in FIG. 9 and described below.
- compromise notification occurs only if the system was not previously notified that the house scene was compromised by another member of the compromised house scene. Compromise notification is for informational purposes only, and a system device will only perform an action after receiving compromise notification if the device has been programmed to do so. A new launch of the house scene causes the house scene to revert back to its uncompromised state.
- house scene compromise notification is not required to implement house scenes, the use of house scene compromise notification provides desirable feedback for many conditional events.
- FIG. 9 illustrates a state machine 900 that maintains knowledge of the house scene currently in control of a device load and the compromised status of the house scene previously in control of the device load according to an actual embodiment of the present invention.
- Each device has its own state machine 900 .
- each house scene in a device has its own compromise flag whose state identifies the compromised or not compromised status of the house scene.
- compromise flag whose state identifies the compromised or not compromised status of the house scene.
- the state machine 900 begins at state 902 when the device is unused from the factory and no scene controls the load. If a house scene launch command is received from a local or remote source while in state 902 and the device is a member of that house scene, the state machine 900 moves to the scene controls load 904 state, with the house scene that was launched becoming the house scene in control of the load. If another house scene launch command for that same house scene is received from a local or remote source while the state machine 900 is in state 904 , the state remains the same. If a new house scene launch command for a different house scene is received from a local or remote source and the device is a member of that new house scene, the state machine 900 temporarily proceeds to the old scene compromised state 906 .
- the state machine compromises the house scene that was in control, sets that particular house scene status to compromised, and broadcasts the scene compromise status to the other devices of the home automation and control system.
- the state machine 900 then immediately proceeds back to the scene controls load state 904 with the new house scene set as the current house scene in control.
- the state machine 900 proceeds to the old scene compromised state 906 .
- the house scene that was in control is compromised, resulting in that particular house scene status being set to compromised, and that particular house scene compromise status being broadcast to the other devices of the home automation and control system.
- the state machine 900 then immediately proceeds back to the no scene state 902 . If a local load change occurs when the state machine 900 is in state 902 , the state remains unchanged.
- a house scene may be defined as having two states when launched, the “on” or activate state where the house scene launch causes all house scene member devices to go to their associated scene states, and the “off” or deactivate state, where all scene members go to a default value.
- the default value may be the device off value, the last manually set device value, the value the device was at when last on, some set value chosen by a programmer, or any other value as defined by the implementation.
- This concept does not have to be implemented in order to have successful house scenes, but is useful to allow one button to turn scenes “on” and “off.” However, if another scene with the same or some of the same members as a scene that is “on” is launched, the next press of a trigger button that toggles between launching the scene in the “on” and “off” may not meet the user's desire. The next press by the user may be due to a desire to launch the house scene “on,” rather than turn the scene “off.” In accordance with this invention, as described next, the compromised status of the house scene can be used to determine if the next house scene trigger should or should not launch the scene as “on.”
- FIG. 10 illustrates a state machine 1000 that maintains knowledge of the launching of the house scene in two scene states, and changes the next state launched with respect to the house scene compromise status of the house scene.
- the state machine 1000 begins at state 1006 when the scene is created.
- a press on the house scene trigger button causes the state machine 1000 to launch the scene in the activate state and transition from state 1006 to the house scene last activated state 1002 .
- a press on the house scene trigger causes the launch of the house scene in the deactivate state, and the state machine 1000 to transition to the house scene last deactivated state 1004 .
- a press on the house scene trigger causes the launch of the house scene in the activate state, and the state machine 1000 transitions to the house scene last activated state 1002 .
- the state machine 1000 will transition to state 1006 when a house scene compromise notification for that particular house scene is received, from the house scene last activated state 1002 or the house scene last deactivated state 1004 .
- the house scene two states of activation and deactivation concept and the associated state machine illustrated in FIG. 10 are implemented as a programmable option, with the default being to launch all scenes as activated state.
- a command message may be used to initiate single step house scene capture when the device does not know its roles in the scene being programmed.
- the exact form of the command message may vary and depends, at least partially, on the protocol implemented.
- One actual embodiment of the invention uses one of the available macro numbers (Macro 21 ) defined by CEBus 80 as reserved for manufacturer specific command functions. This embodiment allows multiple instances of a resource, such as house scenes, to be programmed.
- the Macro 21 contains information on the resource instance as well as the resource identifier, and resource participation roles. To minimize the length of the Macro 21 command, the actual embodiment determines the action to be taken when a command is received by the presence or absence of expected information in the command. The presence of a valid role implies the command is requesting a binding action.
- FIG. 11 is a flow diagram showing the processing of a generic resource Macro 21 command. While not shown in FIG. 11 , as will be readily appreciated by those skilled in the art, actions specific to a particular type of resource will also be defined in implementations directed to accomplishing such specific actions.
- FIG. 11 illustrates a routine 1100 showing the processing of a one-step scene capture command.
- the routine 1100 starts in block 1102 where a test is made to determine if the role information was included in the command message. If the role information has been included, the action requested is to bind a resource, and the routine 1100 branches to block 1104 where a test is made to determine if the resource network identifier information was included in the command message. If the resource network identifier information has been included, the routine 1100 branches to block 1106 where a test is made to determine if the resource instance information was included in the command message. If the resource instance information has been included, the routine 1100 branches to block 1108 where the resource instance becomes the instance used to bind or associated the scene identified by the house scene identifier.
- the routine 1100 branches to block 1110 where the first corresponding resource instance that is not currently in use becomes the instance used to bind or associated the scene identified by the house scene identifier. Again, if the role indicates local membership status, the load state of the product or appliance is also associated with the house scene identifier. In block 1104 , if the resource identifier information has been not been included, the routine 1100 branches to the error handling block 1112 , because no binding can take place without a resource identifier.
- the routine 1100 branches to the error handling block 1114 .
- a test is made to determine if the resource network identifier information was included in the indication message. If the resource network identifier information has been included, the routine 1100 branches to block 1120 where all resource instances bound to the resource identifier are unbound. If the resource network identifier information has not been included, the routine 1100 branches to block 1116 where a test is made to determine if the resource instance information was included in the indication message. If the resource instance information has been included, the routine 1100 branches to block 1122 where the resource instance is unbound. If the resource instance information has not been included, the routine 1100 branches to block 1118 where all the instances of the resource are unbound.
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Selective Calling Equipment (AREA)
Abstract
A method and apparatus for providing distributed control of a home automation and control system is provided. Each device participating in a home automation and control system is equipped with control logic for providing distributed control. Through the control logic, each device maintains scene definitions describing the state of the device for each scene in which it participates. When any device in the system receives a request to launch a scene, such as a button press on one of the devices, the device broadcasts a scene state change message to all devices within the home automation and control system. The scene state change message identifies to each device that a particular scene that should be launched. Each device in the system receives the message and determines whether the device is a participant in the scene. If the device is a participant in the scene, the device adjusts its state according to a scene definition stored in the device associated with the scene. The device may adjust a controlled electrical load, such as a light, according to the scene definition by turning the load on, off, or setting the load to some intermediate value. If the device is a not participant in the scene, the device remains unaffected.
Description
- This application is a continuation of U.S. patent application Ser. No. 10/154,425, filed May 22, 2002, which is a continuation-in-part of U.S. patent application Ser. No. 09/955,570, filed Sep. 17, 2001, which is a continuation of U.S. patent application Ser. No. 09/751,383, filed Dec. 29, 2000, now abandoned, which claims the benefit of prior U.S. Provisional Patent Application No. 60/173,741, filed Dec. 30, 1999, each of which applications is expressly incorporated herein by reference.
- The present invention relates to the field of home automation and control systems and, more particularly, to a method and apparatus for providing distributed control of dynamically created home automation and control system scenes.
- Home automation and control systems are used to control the behavior of an environment such as a home or office building. Home automation and control systems allow home occupants to automate and control the use of electrical products and appliances in and around the house. Home automation and control systems create and launch “scenes,” also called house scenes, involving one or more products and appliances. Examples of the types of products and appliances that can be automated and controlled are lighting, entertainment, cooking, heating, air conditioning, window treatments, and landscaping. Examples of specific products and appliances that can be automated and controlled are lights, television sets, sound systems, coffee machines, ovens, furnaces, air conditioners, water heaters, humidifiers and lawn sprinklers. Each product or appliance can be set to a number of different states, i.e., on, off, and, if appropriate, an intermediate level. The controller of an electrical product or appliance, together with its effect on the controlled electrical product or appliance, will be referred to as a “device.” The “load control button” on a device is the button on the device controller that directly controls or affects the electrical product or appliance. The controller may be a physically separate entity from the product or appliance being controlled, or the controller may be physically embedded or integrated into the product or appliance being controlled.
- A “scene” includes one (1) or more devices set to a particular state. For example, a morning scene could include the furnace set to 70°, the master bathroom lights on at 50%, the kitchen lights on at 100%, the coffee machine on, the television set in the kitchen on to a particular channel, and the front porch light off. This setting of devices constitutes one scene, and may be triggered by a trigger event also defined by the user, such as the press of a button on a remote control. A different scene may set additional devices and some or all of the members of the one scene to the same or different states. Current home automation and control systems are based on controlling devices through device resources, but these device resources are not interoperable between unlike resources. Current home automation and control systems require someone or something in the programming process to understand the details of the system device resources or each type of device resource in the system to create complex scenes. Current home automation and control systems create and launch scenes using several methods, each of which has significant drawbacks.
- One method used by current home automation and control systems is to divide the devices into groups that all respond in basically the same way to a command. Some groups are composed of like type device resources, and other groupings allow mixed type resources, but all like-type device resources are limited to the same actions, i.e., a group command received by like type device resources in the group will force each of those devices to the same state. This method does not provide the flexibility that in one scene some of the same type devices might be on and others off, while in another scene all of the devices might be on. Such an approach is, thus, limited to simple, synchronized scenes. In current home automation and control systems able to create more complex scenes, a central controller is commonly used, with a scene being launched, or triggered, when the central controller detects the trigger event. In response to detecting the trigger event, the central controller sends messages to the devices that are members of the scene directing them to go to their respective scene states. If the central controller fails, scenes can no longer be triggered because the controller can no longer send the necessary messages to the scene member devices to produce the scenes. In effect, if the central controller fails, the entire home automation and control system is rendered unusable. This single point of failure is highly undesirable to users of such systems. Additionally, the use of a central controller creates a heavy load of network traffic, since the central controller must send a message to each scene member device individually. The message traffic on the communication network for a central controller based scene with many member devices grows proportionally with the number of devices. For a scene with a large number of devices, this also causes a time delay time between the start of the scene when the first device gets its message until the last device gets its message. Such heavy network traffic and delay in triggering scene member devices is also undesirable to users of home automation and control systems.
- Another method used by current home automation and control systems is to create pre-defined scenes sometimes called home modes. Examples of such home modes are “away” or “home” or “vacation” scenes. A device receiving a scene launch command will know what state the device should be in for the chosen home mode, but the scene state is determined by the manufacturer for a particular device subtype. If the manufacturer defined home mode does not entirely produce the scene state desired by the home user, or different states are desired for the same device types (a night scene has all lights out except a nightlight in the bathroom, as an example) the scene can not be modified. Furthermore, such home automation and control systems can have only one active home mode at a time, and the home mode affects all devices in the system. This is not desirable in a house with multiple users, where each user may want to select a different scene to control the user's local environment at the same time, without affecting any system devices not in the scene desired by the user.
- In other current home automation and control systems able to create more complex scenes, a specialized central programming tool is used to create complex scenes that, once programmed, can operate in a distributed fashion, i.e., do not then require a central controller to send multiple messages to set the respective states of multiple devices each time a scene is triggered. However, the central programming tool may or may not be a permanent part of such a home automation and control system; and if the central programming tool is lost or fails, the system cannot be reconfigured. This can be a problem when the user of the home automation and control system wishes to reconfigure the system, particularly when a new home owner finds the central programming tool went with the previous owner's computer or has otherwise been lost.
- Also, the central programming tool is typically specialized, in that it is limited to device types that were known or contemplated when the original home automation and control system was installed. Thus, the central programming tool cannot reconfigure the system to incorporate newly developed device types, such as new media players, environmental control devices, etc., for which the programming tool does not have the requisite programming instructions. Thus, adding such new devices necessitates upgrades to the central programming tool. Furthermore, the addition of devices, whether originally contemplated or not, may reach a number exceeding the central programming tool or central controller limitations for number of devices in a scene.
- Therefore, in light of the above, there is a need for a distributed and interoperable home automation and control scene method that provides dynamic complex scene creation but does not increase scene launch message traffic proportionally to the number of devices in the scene and that does not require someone or some entity in the programming process to understand the details of the system devices or each type of device in the system to create complex scenes.
- In accordance with the present invention a distributed home automation and control system method and apparatus is provided. The method and apparatus creates and launches scenes in a way that does not increase scene launch message traffic proportionally to the number of devices in the scene and does not require someone or some entity in the programming process to understand the device type details of the system. Scenes are created system wide and may be called “house scenes.” “House” in this case means any type of premises, including homes, offices, boats, yards, etc. Each device in the system knows its own device-type details and is capable of dynamically learning the current state of those device-type details such that it can duplicate the current device state in a scene at a latter time without any external entity at any time knowing the device type-details. Instead of a programming tool or central controller learning the scene trigger(s) and scene state for each system device, each individual device learns its membership status in each house scene and the load state of the product or appliance controlled by the device.
- In accordance with other aspects of this invention, each house scene is assigned a unique house scene identifier. House scenes are created by each individual member device, when given an indication to learn a new house scene, locally saving its membership status and the load state of the product or appliance associated with the house scene identifier, the product or appliance load state being the current state of the device when the device is given the indication to learn a new scene. When a non-member device is given the indication to learn a new scene, the device need not save any house scene information for that house scene identifier.
- In accordance with further aspects of this invention, scene launch commands are generated by the actuation of scene trigger buttons. Trigger buttons may have fixed house scene identifiers associated with them, or a trigger button may learn a system resource house scene identifier to be associated with the actuating trigger button. Preferably, trigger buttons do not have predefined house scene identifiers associated with them. Also, preferably, each trigger button obtains and learns the house scene identifier at the time when it is associated with a house scene. When given an indication to learn a new system resource house scene identifier as a scene trigger, the device locally saves and associates the house scene identifier with the indicated particular scene trigger button. When the scene trigger button that has learned or been associated with a house scene identifier is activated, the activated scene trigger button launches the house scene by broadcasting a launch command to the entire network that contains the associated house scene identifier.
- In accordance with yet other aspects of this invention, when a device in the network receives a broadcast scene launch command and the device membership status associated with the received house scene identifier indicates the device is a scene participant of that house scene, the device recalls the locally saved scene state associated with that house scene identifier. This allows one simple, short message containing the scene identifier to launch a scene in normal operation without regard to the number of scene members. The message does not tell the member devices how to implement a particular house scene, it only identifies the particular house scene to be launched. In accordance with yet still other aspects of this invention, alternatively, or in addition, a house scene can be launched by another entity, such as software running on a personal computer or an external controller, that is able to broadcast a scene launch command containing the house scene identifier for that particular house scene. While the system house scene resource is most desirable when the scene launch is broadcast to the network, those skilled in the art will appreciate that for network protocols where network broadcast addressing is not robustly supported or desirable, a scene launch identifier message could be addressed to each scene member device, individually or in a combined addressing scheme.
- As will be appreciated from the foregoing description, the invention provides distributed programming and control of a home automation and control system. Each system device maintains scene definitions describing the state settings of the device for each scene in which the device participates as a scene member. Because the scene state setting and programming logic is embedded within each device participant, the control and programming of the system is distributed, thereby eliminating the single point of failure found in previous home automation and control systems. While any device in the system may fail, the other devices will continue to know their scene state settings and operate normally when a scene launch command is received. While any device in the system may fail and not be reprogrammable, such failure will not prevent other devices from being reprogrammable. Other devices will continue to be reprogrammable.
- One benefit of the invention is a reduction in the expertise required to create complex scenes when compared to prior art solutions. Only devices need to know the details of their particular type in order to save a house scene state. No specialized knowledge of the devices to be included in a scene is needed by a central controller or centralized programming tool. There is no need for any entity outside the local device to ever know the local device scene setting associated with a particular house scene state, and no central controller is needed to create complex scenes. Each device can potentially be a member of many scenes. There is no limit to the number of system devices that can be members of a house scene. House scenes can include and exclude devices regardless of zone and group boundaries. A new device type can be incorporated into an existing house scene, even though that device type was totally unknown at the time the original scene was developed. No existing entity in the system outside the new device needs to know the details of the type of new device, and no upgrades to any existing device, central controller or programming tool are needed to add the new device to a house scene.
- Another benefit of the invention is a reduction in the network traffic required to launch a complex scene as compared to central controller prior art solutions. Only a single trigger message with the scene identifier must be sent to devices participating in a scene in order to launch the scene. There is no requirement for a central controller to send a “set device” command to each different scene member, group, or zone. No other message traffic is necessary. Each device maintains its own scene definition for each scene describing the state of the device for the scene. Therefore, the launch scene command only needs to identify the scene to system devices in order for the scene to be launched. This message protocol allows scene control to be distributed throughout the home automation and control system, and also reduces the delay found in current central-controller-based home automation and control systems between the time a trigger event is received and when the last scene member is activated.
- Generally described, the present invention provides a method and apparatus for providing distributed house scene programming and distributed control of a home automation and control system. According to one embodiment of the present invention, each device participating in a home automation and control system is embedded with control logic for providing distributed control. Through the control logic, each device maintains scene definitions describing the state of the device for each scene in which it participates.
- When any device in the system receives a request to launch a scene, such as a scene trigger button press on one of the devices, the device broadcasts a scene state change message to all devices within the home automation and control system. The scene state change message identifies to each device a particular scene that should be launched. Each device in the system receives the message and determines whether the device is a participant in the scene. If the device is a participant in the scene, the device adjusts its state according to a scene definition associated with the scene stored in the device. In particular, the device may adjust a controlled electrical load, such as a light or appliance, according to the scene definition by turning the load on, off, or setting the load to some intermediate value. In this manner, a scene may be launched across an entire home automation and control network.
- In addition to providing a distributed home automation and control method, the present invention also provides a related computer-readable medium and system for providing distributed control of a home automation and control system.
- The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
-
FIG. 1 is a block diagram showing an illustrative home automation and control system that provides an operating environment for an actual embodiment of the present invention. -
FIG. 2 is a block diagram showing a microcontroller and related circuitry that provides distributed control functionality and a simple programming interface in an actual embodiment of the present invention. -
FIGS. 3A-3C are block diagrams showing illustrative switch devices utilized in an actual embodiment of the present invention. -
FIG. 4 is a block diagram showing the software architecture utilized in an actual embodiment of the present invention. -
FIG. 5 is a flow diagram showing a routine for locally capturing a house scene value in a device according to an actual embodiment of the present invention. -
FIG. 6 is a flow diagram showing a routine for conditional local capture of a house scene value in a device if that device is a member of the scene being programmed according to an actual embodiment of the present invention. -
FIG. 7 is a flow diagram showing a routine for capturing a house scene trigger in a device according to an actual embodiment of the present invention. -
FIG. 8 is a flow diagram showing a routine for providing normal mode house scene operation in a device according to an actual embodiment of the present invention. -
FIG. 9 is a state machine diagram showing the normal house scene operation of a device according to an actual embodiment of the present invention. -
FIG. 10 is a state machine diagram showing toggling a house scene launch between the activate and deactivate scene states of a device according to an actual embodiment of the present invention. -
FIG. 11 is a flow diagram showing a routine for processing a one-step resource capture indication message. - The present invention is directed to a method and apparatus for providing distributed scene programming and distributed control of a home automation and control system. According to an embodiment of the present invention, a device is provided for use in a home automation and control system that includes control logic for local storage of its house scene participation states. When multiple such devices are utilized throughout a home automation and control system, control of the system is distributed among the devices. Referring now to the figures, in which like numerals represent like elements, an actual embodiment of the present invention will be described.
FIG. 1 provides an overview of an illustrative home automation and control system 2 in which aspects of the present invention may be practiced. It should be appreciated that the use of the term “home automation and control” includes, but is not limited to, home automation, home control, home networking, or connected home systems, which describe a home where products are not only connected or integrated with each other locally, but also across the Internet and via other networks. Moreover, although the home automation and control system 2 is described herein as being implemented in a home environment, those skilled in the art should appreciate that such systems may be similarly deployed in a business, boat, factory, or other premises where environmental automation is desired. - The home automation and control system 2 typically comprises a number of participating devices connected together by a
common bus 4, or some other communication means. In the actual embodiment of the present invention described herein, thebus 4 comprises typical household wiring. Those skilled in the art should appreciate, however, that other types of communications media may be utilized including twisted wire pair, coaxial 10 cable, fiber optic cable, or other similar media. Additionally, wireless communications media, such as infrared (“IR”) or radio frequency (“RF”), may also be utilized to provide inter-device communication. - The devices connected to the
bus 4 and participating in the home automation and control system 2 may comprise a wide variety of devices for performing a wide variety of functions. For instance, such devices may include athermostat control device 6 for controlling temperature, asensor port device 8 for detecting motion, light, sound, or other activity, aswitch device 10 for triggering scenes or controlling an attached load, and acontrol port device 12 for controlling an attached load, such as a lamp, appliance or motor. Additionally, such devices may include areceiver port device 14 for triggering scenes based on IR or RF signals received from a wirelessremote control 16 operated by auser 18. External controllers andsystems 24 may also participate in the home automation and control system 2 through the use of aPC Port device 22 produced by C-SMART LLC of Las Cruces, N. Mex. ThePC Port device 22 provides an interface between devices compatible with the home automation and control system 2, and devices from other manufacturers that are not natively compatible with the home automation and control system 2. - The
user 18 may interact with the home automation and control system 2 through the devices. For instance, theuser 18 may utilize theswitch device 10 to control a load connected to acontrol port device 12 or to trigger or launch a house scene. Theuser 18 may also interact with the home automation and control system 2 through the use of a personal orInternet gateway computer 20. The personal orInternet gateway computer 20 is connected to thebus 4 and may participate in the home automation and control system 2 through the use of aPC Port device 22. ThePC Port device 22 provides bi-directional communication support for thepersonal computer 20. In this manner, auser 18 can interact with the home automation and control system 2 through thecomputer 20, which is equipped with appropriate software, to interrogate devices, create or launch scenes, and perform other functions. ThePC Port device 22 provides bi-directional communication support for thepersonal computer 20. In this manner, auser 18 can interact with the home automation and control system 2 through thecomputer 20, which is equipped with appropriate software, to interrogate devices, create or launch scenes. Theuser 18 may also interact with the home automation and control system 2 through the use of atabletop controller 26 to launch scenes. - User interaction for programming and controlling the home automation and control system 2 is described in greater detail below.
- The home automation and control system illustrated in
FIG. 1 does not rely on a central controller. Rather, control is distributed by adding intelligence to each device and locally storing the state for all scenes the device participates in. As will be described below with respect toFIG. 2 , this intelligence takes the form of a microcontroller and other circuitry that provides functionality for distributing control of the home automation and control system 2 to each of the devices in the system. - Turning now to
FIG. 2 , an illustrative microcontroller and related control logic will be described that provides distributed control functionality and a simple programming interface in the actual embodiment of the present invention described herein. As mentioned briefly above, according to the actual embodiment of the present invention described herein, the microcontroller and associated circuitry shown inFIG. 2 is incorporated into each device in a home automation and control system. By incorporating the same such circuitry in each device, control of the home automation and control system may be distributed to each device. - Those skilled in the art should appreciate that the house scene programming method of the invention is protocol independent and may be implemented using many types of protocols, such as the Simple Control Protocol, the Universal Plug and Play protocol which is run on a Local Area Network (LAN), the IEEE-1394 protocol, and other protocols known to those skilled in the art. The current embodiment applies this system house scene resource method using as its base communication protocol the CEBus protocol and Home Plug and Play protocol (“HPnP”), both from the CEBus Industry Council, Inc. At the heart of each device is a
CEBus® microcontroller 30. TheCEBus® microcontroller 30 comprises acentral processing unit 62 andinternal memory 64 for executing user programs, paired with functionality for interfacing with a power-line networking protocol, such as the CEBus® protocol from the CEBus® Industry Council, Inc. As known to those skilled in the art, the CEBus® standard (EIA-600) is an open standard for home automation that defines a common language for device communication over various media, including power lines. Those skilled in the art should appreciate that while the CEBus® protocol is utilized for device communication in the actual embodiment of the present invention described herein, other types of protocols may also be utilized. - In the actual embodiment of the present invention described herein, the
CEBus® microcontroller 30 comprises a CEWay PL-One from the Domosys Corporation of Sainte-Foy, Quebec, Canada. The CEWay PL-One is a power line transceiver integrated circuit that integrates the CEBus® physical layer and embeds an 8052 microcontroller core. The CEWay PL-One includes 256 bytes of internal data memory, three 16-bit timers/counters, a full duplex serial port, and the ability to access up to 64 kb of external data memory and up to 64 kb of external code memory. - In the embodiment of the invention described herein, the CEWay PL-One is paired with an external random access memory (“RAM”) 32, an external read-only memory (“ROM”) 34, and a writeable
non-volatile memory 36, such as flash memory. As will be described in greater detail below, thenon-volatile memory 36 may be used to store and retain scene settings for the device when power is removed. These memory devices may also store computer-readable instructions, data structures, program modules, or other data necessary for providing the functionality described herein. - The
CEBus® microcontroller 30 is also paired to aload 50 through aload controller 52. Theload 50 comprises an electrical load, such as that provided by a lamp, electrical equipment, or other home appliance. Theload controller 52 may be capable of sensing the level of theload 50 and is capable of setting theload 50 to a particular level. Theload controller 52 communicates to theCEBus® microcontroller 30 so that sensing the level of theload 50 or setting theload 50 to a particular level may be accomplished under programmatic control. According to the actual embodiment of the present invention described herein, theload controller 52 may comprise a triac, for gradually varying the level of a load, or a relay for switching a load on or off. Other types of load control devices such as latching relays, bi-state relays, or other devices known to those skilled in the art may be utilized. Theload 50 andload controller 52 may also be electrically isolated from theCEBus® microcontroller 30 through the use of aswitch 54, such as an air-gap switch. - The
CEBus® microcontroller 30 may also interface with an alternating current (“A/C”)power line 58 through the use of a 2-waybus communication driver 56. The 2-waybus communication driver 56 receives data transmitted on the A/C power line 58 and converts this data to a signal compatible with theCEBus® microcontroller 30. TheCEBus microcontroller 30 may be electrically isolated from the A/C power line 58 through the use of aswitch 60, such as an air-gap switch. As known to those skilled in the art, theCEBus® microcontroller 30 may also receive electrical power from apower supply 38 and a clock signal from aclock 40. - The
CEBus® microcontroller 30 also interfaces with several input and output devices. In particular, theCEBus® microcontroller 30 interfaces with a light emitting diode (“LED”)controller 44. TheLED controller 44 provides functionality for driving one or more LEDs mounted on the device. As will be described in greater detail below, the LEDs may be used to provide an indication to the user as to whether the device is in a normal operation mode, a programming mode, or in another state. - The
CEBus® microcontroller 30 also receives input from a number of front panel switches 46. The front panel switches 46 may be mounted on a panel of the device accessible to the user. These switches may be utilized to control alocal load 50, or to trigger a scene that includes other devices. Additionally, adedicated setup button 42 may be provided for placing the device into HPnP network configuration modes. According to the actual embodiment of the present invention described herein, thesetup button 42 is located behind a face plate of the device to prevent inadvertent selection of the programming mode. Otherphysical inputs 48 may also be provided to theCEBus® microcontroller 30, such as a timer. The front panel switches 46 and thesetup button 42 are described in greater detail below with respect toFIGS. 3A-3C . - Referring now to
FIG. 3A , anillustrative switch device 10 will be described. In the actual embodiment of the present invention described herein, theswitch device 10 provides a primary interface for a user to the home automation and control system. In particular, theswitch device 10 may be utilized by the user to control a local load, to program a scene, and to trigger a scene. In this regard, theswitch device 10, including the CEBus® microcontroller and related circuitry, is mountable within a standard wall-mount switch plate receptacle. Those skilled in the art should appreciate that while theswitch device 10 is described herein as the primary interface to the home automation and control system, the functionality and interface provided by theswitch device 10 for controlling loads, programming scenes, and launching scenes may be similarly provided by other types of devices. - As described above, the
switch device 10 includes the CEBus® microcontroller and related circuitry for interfacing with the home automation and control system and for providing the user interface. Theswitch device 10 also includes one ormore buttons 70A-70B. In the actual embodiment of the present invention described herein, one of the buttons, such as 70A, is dedicated for local load control. The local load control button may utilize a dimmer to gradually change the value of the local load to which the switch is connected, such as a light. Alternatively, the local load control button may be utilized in connection with a relay for turning the local load on or off. - If the local load control button utilizes a dimmer, the load button may be held down to gradually ramp the local load up from its current state or to gradually ramp the local load down. The ramp up continues until the load button is released, or until it reaches its maximum value state. The ramp down continues until the load button is released, or until it reaches its minimum value state. The ramp direction, up or down, toggles each time the load button is pressed. Those skilled in the art will appreciate that the indications and actions of the load button control may depend on the type of load being controlled. As will be described in greater detail below, scenes may be assigned to the remaining buttons on the
switch device 10. These buttons may then be utilized to trigger the assigned scene. Those skilled in the art should appreciate that theswitch device 10 may be provided in a three-button 70A-70C or four-button 70A-70D configuration as shown inFIGS. 3B and 3C , respectively. Other configurations of the buttons on theswitch device 10 will be apparent to those skilled in the art. - The
switch device 10 also includes avisible LED 74. In another actual embodiment of the invention herein described, theLED 74 comprises a tri-state LED capable of displaying the colors red, amber, and green. TheLED 74 provides a visual indication to a user regarding the current state of theswitch device 10. For instance, one color of theLED 74 may indicate to the user that theswitch device 10 is in a programming state and another color may indicate that theswitch device 10 is in a normal operating state. TheLED 74 may also be flashed in patterns in combination with the colors to provide other types of notifications. TheLED 74 is controlled by theLED controller 44 described above with reference toFIG. 2 . - The
switch device 10 also comprises asetup button 42. As will be described in greater detail below, thesetup button 42 is utilized to place theswitch device 10 into one or more programming modes. In order to avoid inadvertent selection of thesetup button 42, preferably, the button is positioned so as to avoid accidental presses. In the actual embodiment of the invention the setup button is mounted behind aswitch device cover 78. In order to access thesetup button 42, therefore, a user must remove the retaining screws and theswitch device cover 78. If the local load control button utilizes a dimmer then theswitch device 10 also includes an air-gap switch 72 for electrically isolating the local load from the power source. -
FIG. 4 illustrates a software architecture for implementing aspects of the present invention. As described briefly above, each device utilized in a home automation and control system according to the present invention includes a microcontroller and related circuitry for distributing control of the home automation and control system to each device and for providing a simple programming (SPI) interface. To provide such functionality, each device implements theCEBus® protocol 80 for low-level communication. - As known to those skilled in the art, the CEBus® protocol uses 120 v, 60-cycle, electrical wiring to transport messages between devices. Particularly, the
CEBus® protocol 80 uses spread spectrum technology to overcome communication impediments found within electrical power lines. Spread spectrum signaling works by spreading a transmitted signal over a range of frequencies, rather than using a single frequency. TheCEBus® protocol 80 spreads its signal over a range from 100 Hz to 400 Hz during each bit in a data packet. However, instead of using frequency hopping or direct sequence spreading, theCEBus® protocol 80 sweeps through a range of frequencies as it is transmitted. As mentioned above, the CEWay PL-One from the Domosys Corporation implements the physical layer of theCEBus® protocol 80. Other layers of theCEBus® protocol 80 may be implemented in software. - One layer above the
CEBus protocol 80 sits the Home Plug &Play protocol 82, also from the CEBus Industry Council, Inc. The Home Plug andPlay protocol 82 implements the Home Plug and Play Specification that provides a uniform implementation for using the Common Application Language (“CAL”) (EIA-721), from the Electronic Industries Alliance (“EIA”), as a language for inter-device communication. CAL is a high-level command language used by devices for communication over CEBus®. The Home Plug andPlay protocol 82 provides uniform implementation rules for CAL, accommodates various communication protocols so that it works with multiple home network transports, defines common household objects through an object-oriented language, formalizes status, listener, and request objects, uses loose coupling to share status reports, and provides other functionality as known to those skilled in the art. - A house
scene system resource 84, a dynamicresource role model 86, and a simple programming interface (“SPI”) 88 all sit above the Home Plug andPlay protocol 82. While the housescene system resource 84, the dynamicresource role model 86 and the SPI 88 can be implemented independently of each other, they are preferably used together. When used together, the housescene system resource 84, the dynamicresource role model 86, and the simple programming interface 88 maximize the benefits provided separately by each of these elements. Therefore, all three are used in the preferred and actual embodiment of the present invention described herein. The housescene system resource 84 when combined with the SPI 88 creates both distributed programming and distributed control with no single point of failure. The dynamicresource role model 86 enables a more efficient and compact implementation of the housescene system resource 84 and the SPI 88. - The dynamic
resource role model 86 provides resource management for subscriber-publisher based automation and control system protocols, such as theCEBus 80 and Home Plug andPlay 82. In a subscriber-requester based protocol, also called subscriber-publisher protocol, the system consists of device resources made up of “objects” that interoperate with each other depending on their role. The subscriber or member role provides a way for a device resource to be affected by other devices. The requester role provides a way for a device to affect other devices. In normal operation, requester objects from one resource send commands to associated subscriber resource objects. The dynamicresource role model 86 provides dynamic resource object role selection, enables new roles, gives resources the ability to assign allowed roles and provides for role protection. Preferably, the dynamicresource role model 86 allows the same resource object to have multiple roles. A resource object with both requester and subscriber roles can both affect and be affected by one or more resources. The ability for a resource object to function both as a requester and a subscriber simplifies the implementation of system-wide resources such as house scenes that, unlike device specific resource objects, need system wide resource status feedback. The dynamicresource role model 86 provides efficient system wide system resource status updating in the preferred and actual embodiment of the present invention. Further details about the dynamicresource role model 86 are discussed in U.S. patent application Ser. No. 10/153,419, filed May 22, 2002, and entitled “Method and Apparatus for Providing a Dynamic Resource Role Model for Subscriber-Requester Based Protocols in a Home Automation and Control System,” (Attorney Docket No. MSFT118857), the subject matter of which is incorporated herein by reference. - The simple programming interface (“SPI”) 88 provides a simple and consistent user interface for programming scenes and multi-ways within a home automation and control system. The SPI allows unlimited scene member adjustments before finalizing a scene and automatically keeps track of all scene members, thereby reducing scene programming time and error rate. The SPI creates uniquely identified scenes by putting all devices in the home automation and control system in a system wide scene programming mode when starting a programming session. Each and every scene member device is adjusted as many times as desired in any order. When all member devices have been adjusted to the final desired states, a trigger for the scene is selected, completing that programming session. At the end of a programming session, each device knows if its load button has been used to adjust an associated load since the start of the last programming session and not subsequently removed as a scene member. If this condition is met, the device knows that it is part of the scene being programmed and that the device load control state value in the house scene is the current device load control state value. Devices also know that if they have not been adjusted since the start of the last system programming session or have not been adjusted since they were last removed from the scene, they are not part of the scene being programmed in this programming session. The selection of the scene trigger initiates the capture of the created scene, ends the current programming session, and starts a new programming session. Further details of the SPI can be found in U.S. patent application Ser. No. 10/154,403, filed May 22, 2002, and entitled “Method and Apparatus for Providing Distributed Scene Programming in a Home Automation and Control System,” (Attorney Docket No. MSFT118856), the subject matter of which is incorporated herein by reference.
- The house
scene system resource 84 is described in greater detail below with respect toFIGS. 5-10 . The housescene system resource 84 draws on both the standard Home Plug andPlay protocol 82 and theCEBus protocol 80 to perform the needed functionality. The housescene system resource 84 also draws on both the SPI 88 and the dynamicresource role model 86 to maximize the benefits of the housescene system resource 84 functionality. - As noted above, those skilled in the art should appreciate that while the foregoing protocols are presently preferred and are employed in an actual embodiment of the invention, the present invention is protocol independent and may be implemented using many types of protocols, including, but not limited to, the Simple Control Protocol, the Universal Plug and Play protocol for a Local Area Network (LAN), the Home Plug and Play protocol known as HPnP, the IEEE-1394 protocol, Consumer Electronics Bus known as CEBus, PowerBus, and other protocols known to those skilled in the art.
- The actual embodiment of the invention described herein uses as its base communication protocol the
CEBus protocol 80 from the CEBus Industry Council, Inc. The CEBus protocol is expanded by the Home Plug &Play protocol 82, also from the CEBus Industry Council, Inc. The CEBus protocol expanded by the HPnP protocol provides a uniform implementation for using the Common Application Language (“CAL”) (EIA-721), from the Electronic Industries Alliance (“EIA”), as a language for inter-device communication. CAL is a high-level command language used by devices for communication over CEBus®. The Home Plug and Play protocol provides uniform implementation rules for CAL, accommodates various communication protocols so that it works with multiple home network transports, defines common household objects through an object-oriented language, formalizes status, listener, and request objects, uses loose coupling to share status reports, and provides other functionality as known to those skilled in the art. - The CEBus defined CAL household objects are based on distinct device subsystems that are modeled as resources. Each resource subtype has its own different resource contexts and objects.
- The actual embodiment using the CEBus and HPnP protocol defines a system “house scene” resource also called a house scene context. The actual embodiment uses the HPnP defined context channel number method with the house scene resource for the unique scene identifier. Each house scene stored by a device requires a separate house scene resource copy or instance in the device. To enable the device to be a participant of many different house scenes, where the device load level in each house scene may be very different, the device requires an internal device resource instance for each desired house scene. These house scene resource instances are in addition to the applicable CEBus subsystem resource in a device, and act in parallel with the device specific subsystem resource. Each device has multiple instances of the house scene resource, and each resource instance is capable of being assigned a unique house scene resource channel number. The device internal resource instance most recently commanded to action, either one of the house scene resource instances or the subsystem resource instance, has control over the product or appliance controlled by the device controller at any moment. Since the scene “in totality” is the system resource, the devices only have to understand the house scene resource context and objects in order to launch and/or be a participant of a house scene. As long as a totally new device understands the house scene resource, it can be included in a scene with any other subsystem device that understands the house scene resource. An existing device can trigger a house scene containing a new device that may have been created, developed or thought of long after the trigger device was deployed, because the existing device does not need to understand how to communicate with the new device, only with the new device's house scene resource. No device specific subsystem instance is actually required in a device in order to be a participant of a house scene.
- This invention is different from traditional CEBus systems. CEBus subsystems cannot talk to each other without an interpreter such as a central controller or a programming tool. While an interpreter can overwrite the normal CEBus subsystem communication to control a different subsystem type, multiple different subsystem types cannot be controlled. CEBus attempts to reduce the number of resource commands needed for one scene by “lumping” together devices so that they all act as a group to achieve the same end state. To achieve individual independent state values, individual device control is required. The HPnP protocol was created to solve CEBus problems, and makes it easier to group together separate resources into zones with unique channel numbers assigned to each zone. The zone members act in unison in the same manner in response to commands sent with their associated zone channel number. Devices of the same subtype cannot be in more than one zone at a time. Thus, the HPnP extension only extends the individual resource control mindset. For example, a scene launch source employing CEBus with HPnP that needs to activate 5 subsystems in a particular scene needs to send 5 different messages originating in 5 different internal contexts to individually control each subsystem type. The HPnP state vector allows one compound command to include sending all the sub-state information for each different subsystem in the scene at once. But if a new subsystem type is added, the scene launcher must be upgraded to know or be programmed to know how to address the new subtype, or the new subtype cannot be added to the scene.
- In accordance with this invention, devices participate in house scenes as scene members or scene triggers. A device may both trigger a scene and be a member of that scene, only trigger that scene, only be a scene member, or not be a participant in a scene.
-
FIG. 5 illustrates a routine 500 showing house scene member creation using a one-step indication according to the actual embodiment of the present invention described herein. Routine 500 starts atblock 502 where a device is given an indication to learn or capture its scene member state for a house scene associated with the provided house scene identifier.Routine 500 then proceeds to block 504 where the device saves the current device load state as the house scene load state scene associated with the provided house scene identifier. The actual embodiment of the present invention described herein uses as the indication the receipt of a special message from the network, called macro 21. Macro 21 is one of the available macro numbers defined byCEBus 80 as reserved for manufacturer specific functions. Macro 21 contains within it the house scene identifier and house scene participation status, in this case house scene membership. Those skilled in the art will appreciate that the exact form of the indication provided may vary and may depend at least partially on the protocol implemented. - Those skilled in the art will appreciate that a manual indication may be given to a device to learn or capture its scene member state for a house scene. The indication used depends on the manual user programming interface implemented. The actual embodiment of the present invention described herein uses the SPI 88 as its manual user programming interface, where the indication is provided in two parts. In SPI 88 programming, the device receives a device specific manual indication that the device is a scene member that sets the device to the desired scene state, and a later system wide indication to member devices to capture the scene.
-
FIG. 6 illustrates a routine 600 showing house scene member creation using SPI 88 indications according to the actual embodiment of the present invention described herein. Routine 600 starts inblock 602 where a device receives an indication to capture its scene member state for a house scene. In the actual embodiment of the invention, the indication that the SPI sends is theHPnP 82 macro 20 binding macro containing the house scene channel number that is the house scene identifier. The macro 20 command indication is broadcast by a device in SPI scene programming mode after a trigger button on that device is pressed to capture a scene during a scene programming session, and the trigger device has acquired a house scene identifier for the scene to be captured. Fromblock 602, the routine 600 proceeds to block 604 where a test is made to determine if the receiving device is a member based on previously received member indications, such as an adjustment on the load. If the device is a scene member of the house scene being captured, the routine 600 moves fromblock 604 to block 606 where the device saves the current device load state as the house scene load state scene associated with the provided house scene identifier. If the device is a not a member of the house scene being captured, the routine 600 branches fromblock 604 to block 608 where the scene capture ends because there is no scene membership to capture on the device. -
FIG. 7 illustrates a routine 700 showing house scene trigger creation using SPI 88 indications according to the actual embodiment of the present invention described herein. Routine 700 starts inblock 702 where a device is given an indication, such as a press on a trigger button on the device during a SPI 88 scene programming session, to select its trigger button as a scene trigger for a house scene. The routine 700 then proceeds to block 704 where it acquires the house scene identifier for the scene. As previously mentioned, trigger buttons may have fixed house scene identifiers associated with them, or a trigger button may learn a system resource house scene identifier to be associated with the actuating trigger button. The illustrated routine does not have a predefined house scene identifier associated with each trigger button; therefore, the trigger button must obtain a house scene identifier at the time when it is associated with a house scene. The house scene identifier is acquired by using the identifier of a copied house scene, if in SPI copied scene mode, or by hailing for an unused house scene identifier in the standard method for acquiring a resource identifier provided by theCEBus protocol 80 andHPnP protocol 82 standards in SPI new scene mode. This process is referred to as resource channel hailing in theHPnP protocol 82. Those skilled in the art will appreciate that the activities performed to acquire a house scene identifier may vary depending on the protocol implemented. After a house scene identifier is acquired, the routine 700 proceeds to block 706 where the device associates the selected trigger button with the acquired house scene identifier. - The actual embodiment of the present invention also uses the receipt of a special message from the network, called macro 21, as an indication to select a trigger button for a house scene. As previously discussed, macro 21 is one of the available macro numbers defined by
CEBus 80 as reserved for manufacturer specific functions. Macro 21 contains within it the house scene identifier and house scene participation status, in this case as house scene trigger. -
FIG. 8 illustrates a routine 800 showing a house scene launch during normal operation according to the actual embodiment of the present invention described herein. The routine 800 starts inblock 802 where a test is made to determine if an indication to launch a house scene, such as pressing a scene trigger button on the device, has been received. If a launch scene indication has been received, the routine 800 branches to block 804 where a scene launch command for the house scene associated with that trigger button is broadcast. Then the routine 800 proceeds to block 806. If a local launch scene indication has not been received, the routine 800 also proceeds to block 806. Inblock 806, a test is made to determine if a scene launch command has been received, either locally or from a remote source and, if received, if the device is a member of the identified house scene. If the device is a member of the identified house scene, the routine 800 proceeds to block 808 where the device sets its load to the load state associated with the house scene identifier. If the device is not a member of the identified house scene, no further action is taken. - As previously mentioned, a device may be a member of many house scenes. The load of a device is controlled by the most recent action of a local load adjustment or the most recent scene launched that the device is a member of. A device maintains knowledge of the scene identity currently in control of the device load in the manner shown in
FIG. 9 and described below. Sometimes it may be desirable for the home automation and control system to know if a house scene has lost control of one or more of its member devices because the device load is manually adjusted or a later house scene has taken control of the device load. This is important if one of the scene members can only be in a particular state if another device is in a particular state. For example, for safety reasons, some heaters require that the heat source only be on if the fan is also on, but the fan can be on without the heat source being on. So if a scene that turns both the fan on and the heater on loses control of the fan, the home automation and control system needs to know that the scene's control over all members has been compromised, so that corrective action can be taken. In a distributed control-based network of the type contemplated by this invention, no central controller is monitoring the overall system to sense the presence of such compromises. The invention compensates for this lack by each device notifying the home automation and control system of a system compromise if the device was controlled by a house scene, and the control of the device by that particular scene is lost. To reduce total traffic, compromise notification occurs only if the system was not previously notified that the house scene was compromised by another member of the compromised house scene. Compromise notification is for informational purposes only, and a system device will only perform an action after receiving compromise notification if the device has been programmed to do so. A new launch of the house scene causes the house scene to revert back to its uncompromised state. Those skilled in the art will appreciate that while the use of house scene compromise notification is not required to implement house scenes, the use of house scene compromise notification provides desirable feedback for many conditional events. -
FIG. 9 illustrates astate machine 900 that maintains knowledge of the house scene currently in control of a device load and the compromised status of the house scene previously in control of the device load according to an actual embodiment of the present invention. Each device has itsown state machine 900. In addition, each house scene in a device has its own compromise flag whose state identifies the compromised or not compromised status of the house scene. Those skilled in the art will appreciate that a device controlling multiple loads independently would require onestate machine 900 for each unique local independently controlled load. - The
state machine 900 begins atstate 902 when the device is unused from the factory and no scene controls the load. If a house scene launch command is received from a local or remote source while instate 902 and the device is a member of that house scene, thestate machine 900 moves to the scene controls load 904 state, with the house scene that was launched becoming the house scene in control of the load. If another house scene launch command for that same house scene is received from a local or remote source while thestate machine 900 is instate 904, the state remains the same. If a new house scene launch command for a different house scene is received from a local or remote source and the device is a member of that new house scene, thestate machine 900 temporarily proceeds to the old scene compromisedstate 906. When in the old scene compromisedstate 906, the state machine compromises the house scene that was in control, sets that particular house scene status to compromised, and broadcasts the scene compromise status to the other devices of the home automation and control system. Thestate machine 900 then immediately proceeds back to the scene controlsload state 904 with the new house scene set as the current house scene in control. - If a local load change occurs when the
state machine 900 is instate 904, the state machine proceeds to the old scene compromisedstate 906. As a result, the house scene that was in control is compromised, resulting in that particular house scene status being set to compromised, and that particular house scene compromise status being broadcast to the other devices of the home automation and control system. Thestate machine 900 then immediately proceeds back to the noscene state 902. If a local load change occurs when thestate machine 900 is instate 902, the state remains unchanged. - A house scene may be defined as having two states when launched, the “on” or activate state where the house scene launch causes all house scene member devices to go to their associated scene states, and the “off” or deactivate state, where all scene members go to a default value. When so defined, the default value may be the device off value, the last manually set device value, the value the device was at when last on, some set value chosen by a programmer, or any other value as defined by the implementation. This concept does not have to be implemented in order to have successful house scenes, but is useful to allow one button to turn scenes “on” and “off.” However, if another scene with the same or some of the same members as a scene that is “on” is launched, the next press of a trigger button that toggles between launching the scene in the “on” and “off” may not meet the user's desire. The next press by the user may be due to a desire to launch the house scene “on,” rather than turn the scene “off.” In accordance with this invention, as described next, the compromised status of the house scene can be used to determine if the next house scene trigger should or should not launch the scene as “on.”
-
FIG. 10 illustrates astate machine 1000 that maintains knowledge of the launching of the house scene in two scene states, and changes the next state launched with respect to the house scene compromise status of the house scene. Thestate machine 1000 begins atstate 1006 when the scene is created. A press on the house scene trigger button causes thestate machine 1000 to launch the scene in the activate state and transition fromstate 1006 to the house scene last activatedstate 1002. When instate 1002, a press on the house scene trigger causes the launch of the house scene in the deactivate state, and thestate machine 1000 to transition to the house scene last deactivatedstate 1004. Instate 1004, a press on the house scene trigger causes the launch of the house scene in the activate state, and thestate machine 1000 transitions to the house scene last activatedstate 1002. Thestate machine 1000 will transition tostate 1006 when a house scene compromise notification for that particular house scene is received, from the house scene last activatedstate 1002 or the house scene last deactivatedstate 1004. In one actual embodiment of the present invention, the house scene two states of activation and deactivation concept and the associated state machine illustrated inFIG. 10 are implemented as a programmable option, with the default being to launch all scenes as activated state. - A command message may be used to initiate single step house scene capture when the device does not know its roles in the scene being programmed. The exact form of the command message may vary and depends, at least partially, on the protocol implemented. One actual embodiment of the invention uses one of the available macro numbers (Macro 21) defined by
CEBus 80 as reserved for manufacturer specific command functions. This embodiment allows multiple instances of a resource, such as house scenes, to be programmed. The Macro 21 contains information on the resource instance as well as the resource identifier, and resource participation roles. To minimize the length of the Macro 21 command, the actual embodiment determines the action to be taken when a command is received by the presence or absence of expected information in the command. The presence of a valid role implies the command is requesting a binding action. The absence of a valid role implies the command is requesting an unbinding action. The presence of a specific resource instance implies that the action is to effect that particular instance only. The absence of a resource instance indicates that any applicable instance may be acted on.FIG. 11 is a flow diagram showing the processing of a generic resource Macro 21 command. While not shown inFIG. 11 , as will be readily appreciated by those skilled in the art, actions specific to a particular type of resource will also be defined in implementations directed to accomplishing such specific actions. -
FIG. 11 illustrates a routine 1100 showing the processing of a one-step scene capture command. The routine 1100 starts inblock 1102 where a test is made to determine if the role information was included in the command message. If the role information has been included, the action requested is to bind a resource, and the routine 1100 branches to block 1104 where a test is made to determine if the resource network identifier information was included in the command message. If the resource network identifier information has been included, the routine 1100 branches to block 1106 where a test is made to determine if the resource instance information was included in the command message. If the resource instance information has been included, the routine 1100 branches to block 1108 where the resource instance becomes the instance used to bind or associated the scene identified by the house scene identifier. If the role indicates local membership status, the load state of the product or appliance is also associated with the house scene identifier. Inblock 1106, if the resource instance information has not been included, the routine 1100 branches to block 1110 where the first corresponding resource instance that is not currently in use becomes the instance used to bind or associated the scene identified by the house scene identifier. Again, if the role indicates local membership status, the load state of the product or appliance is also associated with the house scene identifier. Inblock 1104, if the resource identifier information has been not been included, the routine 1100 branches to theerror handling block 1112, because no binding can take place without a resource identifier. - In
block 1102, if the role information has not been included, the action requested is to unbind a resource, because no binding can take place without a resource identifier, and the routine 1100 branches to theerror handling block 1114. At block 1114 a test is made to determine if the resource network identifier information was included in the indication message. If the resource network identifier information has been included, the routine 1100 branches to block 1120 where all resource instances bound to the resource identifier are unbound. If the resource network identifier information has not been included, the routine 1100 branches to block 1116 where a test is made to determine if the resource instance information was included in the indication message. If the resource instance information has been included, the routine 1100 branches to block 1122 where the resource instance is unbound. If the resource instance information has not been included, the routine 1100 branches to block 1118 where all the instances of the resource are unbound. - While the foregoing has described the presently preferred embodiment of the invention, as will be readily appreciated by those skilled in the art and others, various changes can be made therein without departing from the spirit and scope of the invention as defined by the appended claims.
Claims (46)
1. A distributed control system for automatically controlling the load status of a plurality of products and/or appliances to create a scene comprising a plurality of programmable devices, each of said programmable devices:
capable of controlling the load status of an associated product or appliance;
in response to the programmable device receiving an indication to learn a scene, locally storing the programmable device's membership status in the scene and the load status of the associated product or appliance when the scene is launched; and
in response to the programmable device receiving a launch command associated with the learned scene, adjusting the load status of the associated product or appliance to the stored load status associated with the scene.
2. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 1 , wherein each of said programmable devices includes a setup controller that, when actuated, produces said indication to learn a scene.
3. A distributed control system for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 2 , wherein the setup controller is manually controlled by the actuation of a button.
4. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 2 , wherein each of said programmable devices also includes a load controller for controlling the adjustment of the load status of the product or appliance associated with the device.
5. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 4 , wherein said load controller is manually controlled by the actuation of a button.
6. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 4 , wherein at least one of said programmable devices also includes one or more triggers the actuation of which produces a scene launch command.
7. A distributed control system for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 6 , wherein said trigger is manually controlled by the actuation of a button.
8. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 4 , wherein each of said programmable devices also includes a plurality of triggers the activation of which produces an individual launch command associated with each trigger.
9. A distributed control system for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 7 , wherein said triggers are manually controlled by the actuation of buttons.
10. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 1 , wherein each of said programmable devices also includes a load controller for controlling the adjustment of the load status of the product or appliance associated with the device.
11. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 10 , wherein said load controller is manually controlled by the actuation of a button.
12. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 1 , wherein each of said programmable devices also includes a trigger the actuation of which produces a scene launch command.
13. A distributed control system for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 12 , wherein said trigger is manually controlled by the actuation of a button.
14. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 1 , wherein each of said programmable devices also includes a plurality of triggers the activation of which produces an individual launch command associated with each trigger.
15. A distributed control system for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 14 , wherein said triggers are manually controlled by the actuation of buttons.
16. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 1 , wherein each of said programmable devices includes an indicator for indicating the status of the programmable device.
17. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 1 wherein said indication to learn a scene is a command message.
18. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 17 , wherein said command message includes role information.
19. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 18 wherein the presence of valid role information implies the command message is requesting a binding action.
20. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 18 wherein the absence of a valid role implies the command message is requesting an unbinding action.
21. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 18 wherein said command message also includes a resource instance.
22. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 21 wherein the presence of a specific resource instance implies that action requested by the command message is to apply only to the specific resource instance.
23. A distributed control system for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 21 wherein the absence of a resource instance implies that action requested by the command message applies to any resource instance capable of carrying out the action.
24. A programmable device suitable for use in a distributed control system for automatically controlling the load status of an associated product and/or appliance to create a scene, said programmable device including:
(a) a storage medium;
(b) a controller for:
(i) in response to manual input, adjusting the load status of said associated product or appliance;
(ii) receiving an indication that the programmable device is to become a member of a house scene; and
(iii) in response to receiving said indication that the programmable device is to become a member of a house scene, storing in said storage medium information regarding the membership status of said programmable device in said house scene and the current load status of said associated product or appliance.
25. A programmable device as claimed in claim 24 , including a setup button that when actuated places said controller in a state suitable for receiving said indication that said programmable device is to become a member of a house scene.
26. A programmable device as claimed in claim 24 , including a load button for adjusting the load status of said associated product or appliance.
27. A programmable controller as claimed in claim 24 , wherein said programmable device also includes at least one trigger button that, when actuated, causes said controller to generate a scene launch command that causes programmable devices to adjust the load status of their associated product or appliance to the load status stored in said storage medium of the devices or members of the scene associated with the scene launch command.
28. A programmable device as claimed in claim 27 , wherein said programmable device includes a plurality of trigger buttons each of which, when actuated, causes said controller to generate a separate and distinct scene launch command for each unique scene.
29. A programmable device as claimed in claim 24 , including an indicator for indicating the status of said programmable device.
30. A programmable device as claimed in claim 29 , wherein said status includes whether said set up button has placed said controller in a state suitable for receiving said indication that said programmable device is to become a member of a scene.
31. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene comprising:
distributing a plurality of programmable devices, each of said programmable devices associated with a product and/or appliance and capable of adjusting the load status of said product or appliance;
in response to said programmable device receiving an indication to learn a scene, said programmable device locally storing the membership status of the programmable device in the scene and the load status of the product or appliance with which said programmable device is associated; and
in response to said programmable device receiving a launch command associated with a learned scene, adjusting the load status of the product or appliance with which the device is associated to the stored load status.
32. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 31 wherein each of said programmable devices includes a setup controller and wherein said method includes, in response to the actuation of said setup controller, producing said indication to learn a scene.
33. A method of automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 32 wherein at least one of said devices includes a load controller and wherein said method includes adjusting the load status of said product or appliance in response to the operation of said load controller.
34. A method for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 33 wherein at least one of said programmable devices also includes a at least one trigger and wherein said method includes generating a launch command in response to the actuation of said trigger.
35. A method for automatically controlling the operation of a plurality of products or appliances to create a scene as claimed in claim 34 wherein at least one of said devices includes a plurality of triggers and wherein said method includes generating a separate and distinct launch command in response to the actuation of each unique scene associated with each one of said plurality of triggers.
36. A method of automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 31 wherein at least one of said devices includes at least one load controller and wherein said method includes adjusting the load status of said product or appliance in response to the operation of said load controller.
37. A method for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 31 wherein at least one of said programmable devices also includes a at least one trigger and wherein said method includes generating a launch command in response to the actuation of said trigger.
38. A method for automatically controlling the operation of a plurality of products or appliances to create a scene as claimed in claim 31 wherein at least one of said devices includes a plurality of triggers and wherein said method includes generating a separate and distinct launch command in response to the actuation of each of said plurality of triggers.
39. A method for automatically controlling the operation of a plurality of products and/or devices to create a scene as claimed in claim 31 wherein each of said programmable devices includes an indicator for indicating the status of said programmable device and wherein said method includes causing said indicator to produce a predetermined indication in response to the operational status of said programmable device.
40. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 24 wherein said indication to learn a scene is a command message.
41. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 40 , wherein said command message includes role information.
42. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 41 wherein the presence of valid role information implies the command message is requesting a binding action.
43. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 41 wherein the absence of a valid role implies the command message is requesting an unbinding action.
44. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 41 wherein said command message also includes a resource instance.
45. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 44 wherein in the presence of a specific resource instance implies that action requested by the command message is to apply only to the specific resource instance.
46. A method for automatically controlling the operation of a plurality of products and/or appliances to create a scene as claimed in claim 44 wherein the absence of a resource instance implies that action requested by the command message applies to any resource instance capable of carrying out the action.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/969,344 US20050055108A1 (en) | 1999-12-30 | 2004-10-19 | Method and apparatus for providing distributed control of a home automation and control system |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17374199P | 1999-12-30 | 1999-12-30 | |
US75138300A | 2000-12-29 | 2000-12-29 | |
US95557001A | 2001-09-17 | 2001-09-17 | |
US10/154,425 US6834208B2 (en) | 1999-12-30 | 2002-05-22 | Method and apparatus for providing distributed control of a home automation and control system |
US10/969,344 US20050055108A1 (en) | 1999-12-30 | 2004-10-19 | Method and apparatus for providing distributed control of a home automation and control system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/154,425 Continuation US6834208B2 (en) | 1999-12-30 | 2002-05-22 | Method and apparatus for providing distributed control of a home automation and control system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20050055108A1 true US20050055108A1 (en) | 2005-03-10 |
Family
ID=46280644
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/154,425 Expired - Lifetime US6834208B2 (en) | 1999-12-30 | 2002-05-22 | Method and apparatus for providing distributed control of a home automation and control system |
US10/969,344 Abandoned US20050055108A1 (en) | 1999-12-30 | 2004-10-19 | Method and apparatus for providing distributed control of a home automation and control system |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/154,425 Expired - Lifetime US6834208B2 (en) | 1999-12-30 | 2002-05-22 | Method and apparatus for providing distributed control of a home automation and control system |
Country Status (1)
Country | Link |
---|---|
US (2) | US6834208B2 (en) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040008710A1 (en) * | 2000-02-04 | 2004-01-15 | Francisco Parra-Moyano | Communicaton system, method and cotroller for routing calls within private networks distributed among geographically distant zones |
US20040233929A1 (en) * | 2003-01-27 | 2004-11-25 | Hall Tobin J. | System and method of controlling network devices |
US20070029401A1 (en) * | 2005-07-22 | 2007-02-08 | Hooshang Kaen | LAN-based sprinkler system |
US20070171026A1 (en) * | 2006-01-11 | 2007-07-26 | Chen Liu | Method and device for controlling switch between appliances |
US20070225865A1 (en) * | 2006-03-16 | 2007-09-27 | Seale Moorer | Device automation using networked device control having a web services for devices stack |
US20070225866A1 (en) * | 2006-03-16 | 2007-09-27 | Seale Moorer | Automation control system having device scripting |
US20070268667A1 (en) * | 2006-05-19 | 2007-11-22 | Seale Moorer | Air-cooling system configuration for touch screen |
US20070288849A1 (en) * | 2006-04-20 | 2007-12-13 | Seale Moorer | Touch screen for convergence and automation system |
US20080154398A1 (en) * | 2006-11-09 | 2008-06-26 | Seale Moorer | Portable device for convergence and automation solution |
US20080183651A1 (en) * | 2007-01-29 | 2008-07-31 | 4Homemedia, Inc. | Automatic configuration and control of devices using metadata |
EP2000867A1 (en) | 2007-06-05 | 2008-12-10 | Somfy Sas | Method for configuring a home automation system reacting to a weather event |
US8001219B2 (en) | 2006-03-16 | 2011-08-16 | Exceptional Innovation, Llc | User control interface for convergence and automation system |
US20120016930A1 (en) * | 2010-07-16 | 2012-01-19 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling remote user interface servers using a multicast message in a home network |
US8155142B2 (en) | 2006-03-16 | 2012-04-10 | Exceptional Innovation Llc | Network based digital access point device |
US8209398B2 (en) | 2006-03-16 | 2012-06-26 | Exceptional Innovation Llc | Internet protocol based media streaming solution |
US8725845B2 (en) | 2006-03-16 | 2014-05-13 | Exceptional Innovation Llc | Automation control system having a configuration tool |
US8812419B1 (en) * | 2010-06-12 | 2014-08-19 | Google Inc. | Feedback system |
US20180294989A1 (en) * | 2015-07-03 | 2018-10-11 | Somfy Sas | Home-automation system and method for constituting the topology of a home-automation system |
US11070387B2 (en) | 2015-07-03 | 2021-07-20 | Somfy Sas | Method for recording a central control unit belonging to a home-automation facility |
US11563594B2 (en) | 2015-07-03 | 2023-01-24 | Somfy Sas | Method for controlling a home-automation facility |
Families Citing this family (180)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920616B1 (en) | 1998-12-18 | 2005-07-19 | Tangis Corporation | Interface for exchanging context data |
US7779015B2 (en) | 1998-12-18 | 2010-08-17 | Microsoft Corporation | Logging and analyzing context attributes |
US7231439B1 (en) * | 2000-04-02 | 2007-06-12 | Tangis Corporation | Dynamically swapping modules for determining a computer user's context |
US7225229B1 (en) | 1998-12-18 | 2007-05-29 | Tangis Corporation | Automated pushing of computer user's context data to clients |
US6791580B1 (en) | 1998-12-18 | 2004-09-14 | Tangis Corporation | Supplying notifications related to supply and consumption of user context data |
US6968333B2 (en) | 2000-04-02 | 2005-11-22 | Tangis Corporation | Soliciting information based on a computer user's context |
US8181113B2 (en) | 1998-12-18 | 2012-05-15 | Microsoft Corporation | Mediating conflicts in computer users context data |
US6801223B1 (en) | 1998-12-18 | 2004-10-05 | Tangis Corporation | Managing interactions between computer users' context models |
US8225214B2 (en) | 1998-12-18 | 2012-07-17 | Microsoft Corporation | Supplying enhanced computer user's context data |
US6842877B2 (en) | 1998-12-18 | 2005-01-11 | Tangis Corporation | Contextual responses based on automated learning techniques |
US9183306B2 (en) | 1998-12-18 | 2015-11-10 | Microsoft Technology Licensing, Llc | Automated selection of appropriate information based on a computer user's context |
US6513046B1 (en) | 1999-12-15 | 2003-01-28 | Tangis Corporation | Storing and recalling information to augment human memories |
US7046263B1 (en) | 1998-12-18 | 2006-05-16 | Tangis Corporation | Requesting computer user's context data |
US7464153B1 (en) | 2000-04-02 | 2008-12-09 | Microsoft Corporation | Generating and supplying user context data |
US6580950B1 (en) * | 2000-04-28 | 2003-06-17 | Echelon Corporation | Internet based home communications system |
US20020054130A1 (en) | 2000-10-16 | 2002-05-09 | Abbott Kenneth H. | Dynamically displaying current status of tasks |
US6702744B2 (en) * | 2001-06-20 | 2004-03-09 | Advanced Cardiovascular Systems, Inc. | Agents that stimulate therapeutic angiogenesis and techniques and devices that enable their delivery |
US7689446B2 (en) * | 2001-09-27 | 2010-03-30 | Koninklijke Philips Electronics N.V. | Automated reservation system with transfer of user-preferences from home to guest accommodations |
US6658091B1 (en) | 2002-02-01 | 2003-12-02 | @Security Broadband Corp. | LIfestyle multimedia security system |
US20040260407A1 (en) * | 2003-04-08 | 2004-12-23 | William Wimsatt | Home automation control architecture |
US7278066B2 (en) * | 2003-10-22 | 2007-10-02 | Honeywell International Inc | Automatic fieldbus device load-mode identification |
US20170118037A1 (en) | 2008-08-11 | 2017-04-27 | Icontrol Networks, Inc. | Integrated cloud system for premises automation |
US10142392B2 (en) | 2007-01-24 | 2018-11-27 | Icontrol Networks, Inc. | Methods and systems for improved system performance |
US11159484B2 (en) | 2004-03-16 | 2021-10-26 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US8635350B2 (en) | 2006-06-12 | 2014-01-21 | Icontrol Networks, Inc. | IP device discovery systems and methods |
US7711796B2 (en) | 2006-06-12 | 2010-05-04 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US11201755B2 (en) | 2004-03-16 | 2021-12-14 | Icontrol Networks, Inc. | Premises system management using status signal |
US11316958B2 (en) | 2008-08-11 | 2022-04-26 | Icontrol Networks, Inc. | Virtual device systems and methods |
US11277465B2 (en) | 2004-03-16 | 2022-03-15 | Icontrol Networks, Inc. | Generating risk profile using data of home monitoring and security system |
US20160065414A1 (en) | 2013-06-27 | 2016-03-03 | Ken Sundermeyer | Control system user interface |
US9729342B2 (en) | 2010-12-20 | 2017-08-08 | Icontrol Networks, Inc. | Defining and implementing sensor triggered response rules |
US9191228B2 (en) | 2005-03-16 | 2015-11-17 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US9609003B1 (en) | 2007-06-12 | 2017-03-28 | Icontrol Networks, Inc. | Generating risk profile using data of home monitoring and security system |
US11582065B2 (en) | 2007-06-12 | 2023-02-14 | Icontrol Networks, Inc. | Systems and methods for device communication |
US11916870B2 (en) | 2004-03-16 | 2024-02-27 | Icontrol Networks, Inc. | Gateway registry methods and systems |
US12063220B2 (en) | 2004-03-16 | 2024-08-13 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11113950B2 (en) | 2005-03-16 | 2021-09-07 | Icontrol Networks, Inc. | Gateway integrated with premises security system |
US11368429B2 (en) | 2004-03-16 | 2022-06-21 | Icontrol Networks, Inc. | Premises management configuration and control |
US8988221B2 (en) | 2005-03-16 | 2015-03-24 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US10522026B2 (en) | 2008-08-11 | 2019-12-31 | Icontrol Networks, Inc. | Automation system user interface with three-dimensional display |
GB2428821B (en) | 2004-03-16 | 2008-06-04 | Icontrol Networks Inc | Premises management system |
US11244545B2 (en) | 2004-03-16 | 2022-02-08 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US9141276B2 (en) | 2005-03-16 | 2015-09-22 | Icontrol Networks, Inc. | Integrated interface for mobile device |
US11489812B2 (en) | 2004-03-16 | 2022-11-01 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US11343380B2 (en) * | 2004-03-16 | 2022-05-24 | Icontrol Networks, Inc. | Premises system automation |
US11677577B2 (en) | 2004-03-16 | 2023-06-13 | Icontrol Networks, Inc. | Premises system management using status signal |
US10313303B2 (en) | 2007-06-12 | 2019-06-04 | Icontrol Networks, Inc. | Forming a security network including integrated security system components and network devices |
US9531593B2 (en) | 2007-06-12 | 2016-12-27 | Icontrol Networks, Inc. | Takeover processes in security network integrated with premise security system |
US10156959B2 (en) | 2005-03-16 | 2018-12-18 | Icontrol Networks, Inc. | Cross-client sensor user interface in an integrated security network |
US10382452B1 (en) | 2007-06-12 | 2019-08-13 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10444964B2 (en) | 2007-06-12 | 2019-10-15 | Icontrol Networks, Inc. | Control system user interface |
US11811845B2 (en) | 2004-03-16 | 2023-11-07 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US10375253B2 (en) | 2008-08-25 | 2019-08-06 | Icontrol Networks, Inc. | Security system with networked touchscreen and gateway |
US20090077623A1 (en) | 2005-03-16 | 2009-03-19 | Marc Baum | Security Network Integrating Security System and Network Devices |
US10200504B2 (en) | 2007-06-12 | 2019-02-05 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US10237237B2 (en) | 2007-06-12 | 2019-03-19 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10339791B2 (en) | 2007-06-12 | 2019-07-02 | Icontrol Networks, Inc. | Security network integrated with premise security system |
US10721087B2 (en) | 2005-03-16 | 2020-07-21 | Icontrol Networks, Inc. | Method for networked touchscreen with integrated interfaces |
US8963713B2 (en) | 2005-03-16 | 2015-02-24 | Icontrol Networks, Inc. | Integrated security network with security alarm signaling system |
US8028038B2 (en) | 2004-05-05 | 2011-09-27 | Dryden Enterprises, Llc | Obtaining a playlist based on user profile matching |
US7403838B2 (en) | 2004-12-16 | 2008-07-22 | General Instrument Corporation | Messaging system based building control |
US20120324566A1 (en) | 2005-03-16 | 2012-12-20 | Marc Baum | Takeover Processes In Security Network Integrated With Premise Security System |
US11615697B2 (en) | 2005-03-16 | 2023-03-28 | Icontrol Networks, Inc. | Premise management systems and methods |
US11700142B2 (en) | 2005-03-16 | 2023-07-11 | Icontrol Networks, Inc. | Security network integrating security system and network devices |
US10999254B2 (en) | 2005-03-16 | 2021-05-04 | Icontrol Networks, Inc. | System for data routing in networks |
US20110128378A1 (en) | 2005-03-16 | 2011-06-02 | Reza Raji | Modular Electronic Display Platform |
US9306809B2 (en) | 2007-06-12 | 2016-04-05 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US11496568B2 (en) | 2005-03-16 | 2022-11-08 | Icontrol Networks, Inc. | Security system with networked touchscreen |
US20170180198A1 (en) | 2008-08-11 | 2017-06-22 | Marc Baum | Forming a security network including integrated security system components |
US20060218244A1 (en) * | 2005-03-25 | 2006-09-28 | Rasmussen Jung A | Methods and systems for automating the control of objects within a defined human environment |
US7958454B2 (en) * | 2005-04-19 | 2011-06-07 | The Mathworks, Inc. | Graphical state machine based programming for a graphical user interface |
US20070043454A1 (en) * | 2005-08-22 | 2007-02-22 | John Sonnenberg | Multi-function remote controller and programmer for landscape systems |
US7415310B2 (en) * | 2005-09-15 | 2008-08-19 | Intermatic Incorporated | System for home automation |
US7509402B2 (en) | 2006-03-16 | 2009-03-24 | Exceptional Innovation, Llc | Automation control system having a configuration tool and two-way ethernet communication for web service messaging, discovery, description, and eventing that is controllable with a touch-screen display |
US7496627B2 (en) | 2006-03-16 | 2009-02-24 | Exceptional Innovation, Llc | Automation control system having digital logging |
WO2007126781A2 (en) | 2006-03-27 | 2007-11-08 | Exceptional Innovation Llc | Set top box for convergence and automation system |
US7571063B2 (en) * | 2006-04-28 | 2009-08-04 | Admmicro Properties Llc | Lighting performance power monitoring system and method with optional integrated light control |
US10079839B1 (en) | 2007-06-12 | 2018-09-18 | Icontrol Networks, Inc. | Activation of gateway device |
US12063221B2 (en) | 2006-06-12 | 2024-08-13 | Icontrol Networks, Inc. | Activation of gateway device |
US20080147827A1 (en) * | 2006-12-14 | 2008-06-19 | Morris Robert P | Method And System For Synchronizing Operating Modes Of Networked Appliances |
US20080147880A1 (en) * | 2006-12-14 | 2008-06-19 | Morris Robert P | Methods And Systems For Routing A Message Over A Network |
US20170344703A1 (en) | 2006-12-29 | 2017-11-30 | Kip Prod P1 Lp | Multi-services application gateway and system employing the same |
US8180735B2 (en) * | 2006-12-29 | 2012-05-15 | Prodea Systems, Inc. | Managed file backup and restore at remote storage locations through multi-services gateway at user premises |
US11783925B2 (en) | 2006-12-29 | 2023-10-10 | Kip Prod P1 Lp | Multi-services application gateway and system employing the same |
US11706279B2 (en) | 2007-01-24 | 2023-07-18 | Icontrol Networks, Inc. | Methods and systems for data communication |
US7633385B2 (en) | 2007-02-28 | 2009-12-15 | Ucontrol, Inc. | Method and system for communicating with and controlling an alarm system from a remote server |
US8451986B2 (en) | 2007-04-23 | 2013-05-28 | Icontrol Networks, Inc. | Method and system for automatically providing alternate network access for telecommunications |
US11316753B2 (en) | 2007-06-12 | 2022-04-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11212192B2 (en) | 2007-06-12 | 2021-12-28 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10051078B2 (en) | 2007-06-12 | 2018-08-14 | Icontrol Networks, Inc. | WiFi-to-serial encapsulation in systems |
US12003387B2 (en) | 2012-06-27 | 2024-06-04 | Comcast Cable Communications, Llc | Control system user interface |
US11089122B2 (en) | 2007-06-12 | 2021-08-10 | Icontrol Networks, Inc. | Controlling data routing among networks |
US10523689B2 (en) | 2007-06-12 | 2019-12-31 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US10389736B2 (en) | 2007-06-12 | 2019-08-20 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11237714B2 (en) | 2007-06-12 | 2022-02-01 | Control Networks, Inc. | Control system user interface |
US11218878B2 (en) | 2007-06-12 | 2022-01-04 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10666523B2 (en) | 2007-06-12 | 2020-05-26 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11646907B2 (en) | 2007-06-12 | 2023-05-09 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US11423756B2 (en) | 2007-06-12 | 2022-08-23 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10423309B2 (en) | 2007-06-12 | 2019-09-24 | Icontrol Networks, Inc. | Device integration framework |
US10616075B2 (en) | 2007-06-12 | 2020-04-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US20180198788A1 (en) * | 2007-06-12 | 2018-07-12 | Icontrol Networks, Inc. | Security system integrated with social media platform |
US10498830B2 (en) | 2007-06-12 | 2019-12-03 | Icontrol Networks, Inc. | Wi-Fi-to-serial encapsulation in systems |
US11601810B2 (en) | 2007-06-12 | 2023-03-07 | Icontrol Networks, Inc. | Communication protocols in integrated systems |
US10223903B2 (en) | 2010-09-28 | 2019-03-05 | Icontrol Networks, Inc. | Integrated security system with parallel processing architecture |
US11831462B2 (en) | 2007-08-24 | 2023-11-28 | Icontrol Networks, Inc. | Controlling data routing in premises management systems |
US11916928B2 (en) | 2008-01-24 | 2024-02-27 | Icontrol Networks, Inc. | Communication protocols over internet protocol (IP) networks |
US20170185278A1 (en) | 2008-08-11 | 2017-06-29 | Icontrol Networks, Inc. | Automation system user interface |
US11758026B2 (en) | 2008-08-11 | 2023-09-12 | Icontrol Networks, Inc. | Virtual device systems and methods |
US10530839B2 (en) | 2008-08-11 | 2020-01-07 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US11258625B2 (en) | 2008-08-11 | 2022-02-22 | Icontrol Networks, Inc. | Mobile premises automation platform |
US11729255B2 (en) | 2008-08-11 | 2023-08-15 | Icontrol Networks, Inc. | Integrated cloud system with lightweight gateway for premises automation |
US11792036B2 (en) | 2008-08-11 | 2023-10-17 | Icontrol Networks, Inc. | Mobile premises automation platform |
US8009042B2 (en) | 2008-09-03 | 2011-08-30 | Lutron Electronics Co., Inc. | Radio-frequency lighting control system with occupancy sensing |
US8638211B2 (en) | 2009-04-30 | 2014-01-28 | Icontrol Networks, Inc. | Configurable controller and interface for home SMA, phone and multimedia |
US9606520B2 (en) | 2009-06-22 | 2017-03-28 | Johnson Controls Technology Company | Automated fault detection and diagnostics in a building management system |
US9196009B2 (en) | 2009-06-22 | 2015-11-24 | Johnson Controls Technology Company | Systems and methods for detecting changes in energy usage in a building |
US9753455B2 (en) | 2009-06-22 | 2017-09-05 | Johnson Controls Technology Company | Building management system with fault analysis |
US11269303B2 (en) | 2009-06-22 | 2022-03-08 | Johnson Controls Technology Company | Systems and methods for detecting changes in energy usage in a building |
US8600556B2 (en) | 2009-06-22 | 2013-12-03 | Johnson Controls Technology Company | Smart building manager |
US8731724B2 (en) | 2009-06-22 | 2014-05-20 | Johnson Controls Technology Company | Automated fault detection and diagnostics in a building management system |
US9286582B2 (en) | 2009-06-22 | 2016-03-15 | Johnson Controls Technology Company | Systems and methods for detecting changes in energy usage in a building |
US8532839B2 (en) | 2009-06-22 | 2013-09-10 | Johnson Controls Technology Company | Systems and methods for statistical control and fault detection in a building management system |
US8788097B2 (en) | 2009-06-22 | 2014-07-22 | Johnson Controls Technology Company | Systems and methods for using rule-based fault detection in a building management system |
US10739741B2 (en) | 2009-06-22 | 2020-08-11 | Johnson Controls Technology Company | Systems and methods for detecting changes in energy usage in a building |
US8532808B2 (en) | 2009-06-22 | 2013-09-10 | Johnson Controls Technology Company | Systems and methods for measuring and verifying energy savings in buildings |
JP5492522B2 (en) * | 2009-10-21 | 2014-05-14 | アズビル株式会社 | Air conditioning control apparatus and method |
AU2011250886A1 (en) | 2010-05-10 | 2013-01-10 | Icontrol Networks, Inc | Control system user interface |
US8836467B1 (en) | 2010-09-28 | 2014-09-16 | Icontrol Networks, Inc. | Method, system and apparatus for automated reporting of account and sensor zone information to a central station |
US8170722B1 (en) * | 2010-12-09 | 2012-05-01 | Elbex Video Ltd. | Method and apparatus for coding and linking electrical appliances for control and status report |
US11750414B2 (en) | 2010-12-16 | 2023-09-05 | Icontrol Networks, Inc. | Bidirectional security sensor communication for a premises security system |
US9147337B2 (en) | 2010-12-17 | 2015-09-29 | Icontrol Networks, Inc. | Method and system for logging security event data |
US20130132745A1 (en) * | 2011-11-22 | 2013-05-23 | Cisco Technology Inc. | System and method for network enabled wake for networks |
FR2990043B1 (en) * | 2012-04-27 | 2014-05-16 | Somfy Sas | INSTALLATION AUTOMATICALLY CONTROLLING CONDITIONS OF COMFORT AND / OR SAFETY IN A BUILDING |
US9390388B2 (en) | 2012-05-31 | 2016-07-12 | Johnson Controls Technology Company | Systems and methods for measuring and verifying energy usage in a building |
JP2015534701A (en) | 2012-08-28 | 2015-12-03 | デロス リビング エルエルシーDelos Living Llc | Systems, methods, and articles for promoting wellness associated with living environments |
US8806209B2 (en) | 2012-12-22 | 2014-08-12 | Wigwag, Llc | Provisioning of electronic devices |
US9679491B2 (en) * | 2013-05-24 | 2017-06-13 | Qualcomm Incorporated | Signaling device for teaching learning devices |
US9509763B2 (en) | 2013-05-24 | 2016-11-29 | Qualcomm Incorporated | Delayed actions for a decentralized system of learning devices |
US9747554B2 (en) | 2013-05-24 | 2017-08-29 | Qualcomm Incorporated | Learning device with continuous configuration capability |
US20140351182A1 (en) * | 2013-05-24 | 2014-11-27 | Qualcomm Incorporated | Modifying Learning Capabilities of Learning Devices |
US10454783B2 (en) * | 2014-02-05 | 2019-10-22 | Apple Inc. | Accessory management system using environment model |
US10177933B2 (en) | 2014-02-05 | 2019-01-08 | Apple Inc. | Controller networks for an accessory management system |
US10768784B2 (en) * | 2013-12-06 | 2020-09-08 | Vivint, Inc. | Systems and methods for rules-based automations and notifications |
CN108259159B (en) | 2014-02-05 | 2021-02-05 | 苹果公司 | Method and system for pairing between a controller and an accessory |
MX2016011107A (en) | 2014-02-28 | 2017-02-17 | Delos Living Llc | Systems, methods and articles for enhancing wellness associated with habitable environments. |
US11146637B2 (en) | 2014-03-03 | 2021-10-12 | Icontrol Networks, Inc. | Media content management |
US11405463B2 (en) | 2014-03-03 | 2022-08-02 | Icontrol Networks, Inc. | Media content management |
US9369373B2 (en) * | 2014-08-25 | 2016-06-14 | Seed Labs Sp. Z O.O. | Peer-to-peer building automation system without knowledge being required of network topology |
US10042336B2 (en) * | 2014-09-09 | 2018-08-07 | Savant Systems, Llc | User-defined scenes for home automation |
DE102014222508A1 (en) * | 2014-11-04 | 2016-05-04 | Wago Verwaltungsgesellschaft Mbh | Module for a process plant and method for controlling a process plant |
CN104503253A (en) * | 2014-12-17 | 2015-04-08 | 宇龙计算机通信科技(深圳)有限公司 | Equipment control method, equipment control system and terminal |
US9778639B2 (en) | 2014-12-22 | 2017-10-03 | Johnson Controls Technology Company | Systems and methods for adaptively updating equipment models |
WO2016115230A1 (en) | 2015-01-13 | 2016-07-21 | Delos Living Llc | Systems, methods and articles for monitoring and enhancing human wellness |
US9984686B1 (en) * | 2015-03-17 | 2018-05-29 | Amazon Technologies, Inc. | Mapping device capabilities to a predefined set |
CN106292306A (en) * | 2015-06-01 | 2017-01-04 | 丰唐物联技术(深圳)有限公司 | Scene setting method and terminal |
US10655951B1 (en) | 2015-06-25 | 2020-05-19 | Amazon Technologies, Inc. | Determining relative positions of user devices |
US10630649B2 (en) | 2015-06-30 | 2020-04-21 | K4Connect Inc. | Home automation system including encrypted device connection based upon publicly accessible connection file and related methods |
WO2017004200A1 (en) * | 2015-06-30 | 2017-01-05 | K4Connect Inc. | Home automation system including security controller for terminating communication with abnormally operating addressable devices and related methods |
US10365620B1 (en) | 2015-06-30 | 2019-07-30 | Amazon Technologies, Inc. | Interoperability of secondary-device hubs |
EP3408968B1 (en) * | 2016-01-29 | 2019-12-04 | Signify Holding B.V. | Distributed configuration management in application control networks |
US10359746B2 (en) | 2016-04-12 | 2019-07-23 | SILVAIR Sp. z o.o. | System and method for space-driven building automation and control including actor nodes subscribed to a set of addresses including addresses that are representative of spaces within a building to be controlled |
US11338107B2 (en) | 2016-08-24 | 2022-05-24 | Delos Living Llc | Systems, methods and articles for enhancing wellness associated with habitable environments |
US10678203B2 (en) * | 2017-02-28 | 2020-06-09 | Lutron Technology Company Llc | Communicating with and controlling load control systems by communicating messages from the load control systems related to events that occur in the load control systems |
WO2019046580A1 (en) | 2017-08-30 | 2019-03-07 | Delos Living Llc | Systems, methods and articles for assessing and/or improving health and well-being |
US10897374B2 (en) * | 2017-11-06 | 2021-01-19 | Computime Ltd. | Scalable smart environment for controlling a plurality of controlled apparatuses using a connection hub to route a processed subset of control data received from a cloud computing resource to terminal units |
US11057238B2 (en) | 2018-01-08 | 2021-07-06 | Brilliant Home Technology, Inc. | Automatic scene creation using home device control |
US10382284B1 (en) | 2018-03-02 | 2019-08-13 | SILVAIR Sp. z o.o. | System and method for commissioning mesh network-capable devices within a building automation and control system |
US10595073B2 (en) * | 2018-06-03 | 2020-03-17 | Apple Inc. | Techniques for authorizing controller devices |
US10985972B2 (en) * | 2018-07-20 | 2021-04-20 | Brilliant Home Technoloy, Inc. | Distributed system of home device controllers |
EP3850458A4 (en) | 2018-09-14 | 2022-06-08 | Delos Living, LLC | Systems and methods for air remediation |
US11844163B2 (en) | 2019-02-26 | 2023-12-12 | Delos Living Llc | Method and apparatus for lighting in an office environment |
US11898898B2 (en) | 2019-03-25 | 2024-02-13 | Delos Living Llc | Systems and methods for acoustic monitoring |
US11017772B1 (en) * | 2019-05-30 | 2021-05-25 | Josh.Ai, Inc. | Natural language programming |
US10542610B1 (en) | 2019-08-28 | 2020-01-21 | Silvar Sp. z o.o. | Coordinated processing of published sensor values within a distributed network |
US11528028B2 (en) | 2020-01-05 | 2022-12-13 | Brilliant Home Technology, Inc. | Touch-based control device to detect touch input without blind spots |
CA3163734A1 (en) | 2020-01-05 | 2021-07-08 | Aaron T. Emigh | Touch-based control device |
US11469916B2 (en) | 2020-01-05 | 2022-10-11 | Brilliant Home Technology, Inc. | Bridging mesh device controller for implementing a scene |
CN111245923A (en) * | 2020-01-08 | 2020-06-05 | 北京小米移动软件有限公司 | Data processing method and device and storage medium |
CN114584415B (en) * | 2022-01-24 | 2023-11-28 | 杭州博联智能科技股份有限公司 | Method, system, device and medium for realizing scene distribution of full house intelligence |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5187655A (en) * | 1990-01-16 | 1993-02-16 | Lutron Electronic Co., Inc. | Portable programmer for a lighting control |
US5526358A (en) * | 1994-08-19 | 1996-06-11 | Peerlogic, Inc. | Node management in scalable distributed computing enviroment |
US5560322A (en) * | 1994-08-11 | 1996-10-01 | Foster Wheeler Energy Corporation | Continuous vertical-to-angular tube transitions |
US5621662A (en) * | 1994-02-15 | 1997-04-15 | Intellinet, Inc. | Home automation system |
US5677603A (en) * | 1994-08-04 | 1997-10-14 | British Airways Plc | Lighting system for an aircraft cabin |
US5706191A (en) * | 1995-01-19 | 1998-01-06 | Gas Research Institute | Appliance interface apparatus and automated residence management system |
US5841360A (en) * | 1996-10-21 | 1998-11-24 | Binder; Yehuda | Distributed serial control system |
US5877957A (en) * | 1996-11-06 | 1999-03-02 | Ameritech Services, Inc. | Method and system of programming at least one appliance to change state upon the occurrence of a trigger event |
US5920476A (en) * | 1996-11-21 | 1999-07-06 | Hennessey; John M. | Computer controlled movement of stage effects and stage installation employing same |
US5959536A (en) * | 1996-10-15 | 1999-09-28 | Philips Electronics North America Corporation | Task-driven distributed multimedia consumer system |
US6192282B1 (en) * | 1996-10-01 | 2001-02-20 | Intelihome, Inc. | Method and apparatus for improved building automation |
US6466234B1 (en) * | 1999-02-03 | 2002-10-15 | Microsoft Corporation | Method and system for controlling environmental conditions |
US6545434B2 (en) * | 1998-12-24 | 2003-04-08 | Lutron Electronics Co., Inc. | Multi-scene preset lighting controller |
-
2002
- 2002-05-22 US US10/154,425 patent/US6834208B2/en not_active Expired - Lifetime
-
2004
- 2004-10-19 US US10/969,344 patent/US20050055108A1/en not_active Abandoned
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5187655A (en) * | 1990-01-16 | 1993-02-16 | Lutron Electronic Co., Inc. | Portable programmer for a lighting control |
US5621662A (en) * | 1994-02-15 | 1997-04-15 | Intellinet, Inc. | Home automation system |
US5677603A (en) * | 1994-08-04 | 1997-10-14 | British Airways Plc | Lighting system for an aircraft cabin |
US5560322A (en) * | 1994-08-11 | 1996-10-01 | Foster Wheeler Energy Corporation | Continuous vertical-to-angular tube transitions |
US5526358A (en) * | 1994-08-19 | 1996-06-11 | Peerlogic, Inc. | Node management in scalable distributed computing enviroment |
US5699351A (en) * | 1994-08-19 | 1997-12-16 | Peerlogic, Inc. | Node management in scalable distributed computing environment |
US5793968A (en) * | 1994-08-19 | 1998-08-11 | Peerlogic, Inc. | Scalable distributed computing environment |
US5706191A (en) * | 1995-01-19 | 1998-01-06 | Gas Research Institute | Appliance interface apparatus and automated residence management system |
US6192282B1 (en) * | 1996-10-01 | 2001-02-20 | Intelihome, Inc. | Method and apparatus for improved building automation |
US5959536A (en) * | 1996-10-15 | 1999-09-28 | Philips Electronics North America Corporation | Task-driven distributed multimedia consumer system |
US5841360A (en) * | 1996-10-21 | 1998-11-24 | Binder; Yehuda | Distributed serial control system |
US5877957A (en) * | 1996-11-06 | 1999-03-02 | Ameritech Services, Inc. | Method and system of programming at least one appliance to change state upon the occurrence of a trigger event |
US6640141B2 (en) * | 1996-11-06 | 2003-10-28 | Ameritech Services, Inc. | Automation system and method for the programming thereof |
US5920476A (en) * | 1996-11-21 | 1999-07-06 | Hennessey; John M. | Computer controlled movement of stage effects and stage installation employing same |
US6545434B2 (en) * | 1998-12-24 | 2003-04-08 | Lutron Electronics Co., Inc. | Multi-scene preset lighting controller |
US6466234B1 (en) * | 1999-02-03 | 2002-10-15 | Microsoft Corporation | Method and system for controlling environmental conditions |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356040B2 (en) * | 2000-02-04 | 2008-04-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Communication system, method and controller for routing calls within private networks distributed among geographically distant zones |
US20040008710A1 (en) * | 2000-02-04 | 2004-01-15 | Francisco Parra-Moyano | Communicaton system, method and cotroller for routing calls within private networks distributed among geographically distant zones |
US20040233929A1 (en) * | 2003-01-27 | 2004-11-25 | Hall Tobin J. | System and method of controlling network devices |
US20070029401A1 (en) * | 2005-07-22 | 2007-02-08 | Hooshang Kaen | LAN-based sprinkler system |
US20070171026A1 (en) * | 2006-01-11 | 2007-07-26 | Chen Liu | Method and device for controlling switch between appliances |
US7745743B2 (en) | 2006-01-11 | 2010-06-29 | Huawei Technologies Co., Ltd. | Method and device for controlling switch between appliances |
EP1848155A1 (en) * | 2006-01-11 | 2007-10-24 | Huawei Technologies Co., Ltd. | Method and device for controlling equipment switching |
EP1848155A4 (en) * | 2006-01-11 | 2008-07-23 | Huawei Tech Co Ltd | Method and device for controlling equipment switching |
US8209398B2 (en) | 2006-03-16 | 2012-06-26 | Exceptional Innovation Llc | Internet protocol based media streaming solution |
US8001219B2 (en) | 2006-03-16 | 2011-08-16 | Exceptional Innovation, Llc | User control interface for convergence and automation system |
US8725845B2 (en) | 2006-03-16 | 2014-05-13 | Exceptional Innovation Llc | Automation control system having a configuration tool |
US20070225866A1 (en) * | 2006-03-16 | 2007-09-27 | Seale Moorer | Automation control system having device scripting |
US20070225865A1 (en) * | 2006-03-16 | 2007-09-27 | Seale Moorer | Device automation using networked device control having a web services for devices stack |
US8155142B2 (en) | 2006-03-16 | 2012-04-10 | Exceptional Innovation Llc | Network based digital access point device |
US7966083B2 (en) | 2006-03-16 | 2011-06-21 | Exceptional Innovation Llc | Automation control system having device scripting |
US8271881B2 (en) | 2006-04-20 | 2012-09-18 | Exceptional Innovation, Llc | Touch screen for convergence and automation system |
US20070288849A1 (en) * | 2006-04-20 | 2007-12-13 | Seale Moorer | Touch screen for convergence and automation system |
US20070268667A1 (en) * | 2006-05-19 | 2007-11-22 | Seale Moorer | Air-cooling system configuration for touch screen |
US7667968B2 (en) | 2006-05-19 | 2010-02-23 | Exceptional Innovation, Llc | Air-cooling system configuration for touch screen |
US20080154398A1 (en) * | 2006-11-09 | 2008-06-26 | Seale Moorer | Portable device for convergence and automation solution |
US7962130B2 (en) | 2006-11-09 | 2011-06-14 | Exceptional Innovation | Portable device for convergence and automation solution |
US7680745B2 (en) * | 2007-01-29 | 2010-03-16 | 4Homemedia, Inc. | Automatic configuration and control of devices using metadata |
US7953678B2 (en) | 2007-01-29 | 2011-05-31 | 4Homemedia, Inc. | Automatic configuration and control of devices using metadata |
US20110016066A1 (en) * | 2007-01-29 | 2011-01-20 | 4Homemedia, Inc. | Automatic configuration and control of devices using metadata |
US20080183651A1 (en) * | 2007-01-29 | 2008-07-31 | 4Homemedia, Inc. | Automatic configuration and control of devices using metadata |
EP2000867A1 (en) | 2007-06-05 | 2008-12-10 | Somfy Sas | Method for configuring a home automation system reacting to a weather event |
US8812419B1 (en) * | 2010-06-12 | 2014-08-19 | Google Inc. | Feedback system |
US20120016930A1 (en) * | 2010-07-16 | 2012-01-19 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling remote user interface servers using a multicast message in a home network |
US8930444B2 (en) * | 2010-07-16 | 2015-01-06 | Samsung Electronics Co., Ltd | Apparatus and method for controlling remote user interface servers using a multicast message in a home network |
US20180294989A1 (en) * | 2015-07-03 | 2018-10-11 | Somfy Sas | Home-automation system and method for constituting the topology of a home-automation system |
US11070387B2 (en) | 2015-07-03 | 2021-07-20 | Somfy Sas | Method for recording a central control unit belonging to a home-automation facility |
US11095471B2 (en) * | 2015-07-03 | 2021-08-17 | Somfy Sas | Home-automation system and method for constituting the topology of a home-automation system |
US11563594B2 (en) | 2015-07-03 | 2023-01-24 | Somfy Sas | Method for controlling a home-automation facility |
Also Published As
Publication number | Publication date |
---|---|
US6834208B2 (en) | 2004-12-21 |
US20030040812A1 (en) | 2003-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6834208B2 (en) | Method and apparatus for providing distributed control of a home automation and control system | |
US6823223B2 (en) | Method and apparatus for providing distributed scene programming of a home automation and control system | |
US6990379B2 (en) | Method and apparatus for providing a dynamic resource role model for subscriber-requester based protocols in a home automation and control system | |
US6865428B2 (en) | Method and apparatus for providing distributed control of a home automation system | |
US11735918B2 (en) | Method and apparatus for electrical load control network | |
US6640141B2 (en) | Automation system and method for the programming thereof | |
CA2325494A1 (en) | Method of adding a device to a network | |
JP2007502529A (en) | System bridge and time clock for RF controlled lighting system | |
WO2018047181A1 (en) | Smart switch network | |
CN106292614B (en) | Guest room networking control system | |
JPH09215067A (en) | Intelligent system for consumer electric product | |
US20080218319A1 (en) | Systems and methods for linking utility control devices | |
CN106527364B (en) | Hotel guest room electrical equipment control system | |
EP3726939B1 (en) | Commissioning of electrical devices in an automated home environment | |
CN115915305A (en) | Network switching method, equipment, system and storage medium | |
CN113687605A (en) | Control method of household appliance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: AGREEMENT AND PLAN OF LIQUIDATION;ASSIGNOR:C-SMART CORPORATION;REEL/FRAME:015610/0070 Effective date: 20020826 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001 Effective date: 20141014 |