The present invention relates to building automation and control in general, and, more particularly, to a peer-to-peer automation system that does not require knowledge of the topology of the network in which the peers communicate.
Home automation refers to the use of computer and information technology to control home systems, such as lighting, HVAC, audio-visual, smoke detection, security, and shading, among others. Using specialized hardware, even household appliances can be monitored and controlled automatically. A feature of science fiction for many years, home automation has only recently become practical, both from a technological and cost perspective. This is due in part to the rapid advancement of information technology.
A sophisticated home automation system may include sensors (e.g., of temperature, of light, of motion, etc.), controllers (e.g., a general-purpose personal computer, a dedicated automation controller, etc.), and actuators (e.g., motorized valves, switches, etc.). The system may also include a human-machine interface device that enables a resident of the home to interact with the system. The interface can be a specialized terminal or an application (“app”) running on a smart phone or tablet computer. The various system devices communicate over dedicated wiring, or over a wired network, or wirelessly, using one or more protocols.
Sensor nodes 101-1 through 101-G include one or more of: motion sensors, temperature sensors, light sensors, and air quality sensors. Actor nodes 102-1 through 102-H are home appliances that include one or more of: lamps, possibly with adjustable brightness and/or color; window blinds that can be opened and closed; and HVAC (heating, ventilation, and air conditioning) systems. Using such sensor and actor nodes, home automation system 100 is capable of triggering and acting on certain conditions as a function of sensor readings, such as turning on lights when motion is detected or when ambient light is low, controlling HVAC systems in response to temperature variations, and so forth. Controller 110 coordinates and executes the actions to be taken by one or more of the actor nodes, based on i) the input signals received from one or more of the sensor nodes and ii) one or more memorized states.
The simplest form of controlling an actor node is turning it on or off. The situation, however, gets more complicated where there are many appliances to control and where the controlling the appliances requires setting more than two (i.e., “on” or “off”) states, such as adjusting the brightness of a lamp or the color of a lamp, or both. Indeed, where there are multiple lamps in a room, each with a dimmer, controlling them individually is not convenient.
To simplify the control of a group of nodes in a given space, it is convenient to define presets for each appliance, associated with certain scenarios. Each such group of presets is sometimes referred to as a “scene”, and the actor appliances participate in a scene. For example, there are three lamps with dimmers in a room. Four scenes are predefined: “television-watching”, “reading”, “dining”, and “partying”. A user conveniently engages one of the scenes, and, as a result, she does not have to select dimmer levels for each lamp every time.
Conventional implementations of scenes are based on a centralized controller, such as controller 110, in which the controller remembers the values of scene settings for each lamp and each scene. Engaging a scene means sending to each actor a setting, such as a power level in the case of each lamp.
One of the problems with the conventional implementations of scenes in a home automation system is that because each actor node needs to be accessed by a central controller, the controller needs to remember the values of scene settings for each actor and each scene. As more and more smart appliances are introduced into the home, requiring this knowledge of both the nodes in the network and the topology of the network becomes cumbersome and impractical. Furthermore, the presence of a controller can add to the cost of the automation system without necessarily offering any distinct advantages.
The present invention enables an automation system without requiring a central controller to control the system, and without any of the devices in the system being required to have knowledge of each other or of the topology of the network. The disclosed automation system comprises sensor nodes and actor nodes. The sensor nodes transmit information via a wireless network based on changes that are sensed by the sensors, such as a button being pushed or motion being detected. The actor nodes detect the information that is transmitted over the wireless network and control appliance functions based on the information detected.
Part of what enables such a system is a software application (“app”) that is used for the initial configuring of the automation system. The software application can be executed on a mobile station, such as a smartphone. The configuring process results in the actor nodes being initialized with a set of parameter values associated with each scene, including a control value (e.g., a brightness level, a temperature, etc.) to be applied whenever an actor node or nodes detect a data packet that indicates a scene that is relevant to the detecting actor node.
After the sensor and actor nodes are initialized, the sensor nodes transmit packets into the network based on changes that are detected in their environment. The packets contain information that is relevant to the preconfigured scenes. The network itself is based on the Bluetooth Low Energy (BLE) protocol. Meanwhile, the actor nodes monitor the network for packets that contain information of scenes that are relevant to each node. Based on the information contained in each such packet, the node acts on the information by controlling its appliance function, such as a single-channel dimmer, a multi-channel color (RGB) dimmer, or a window-blind motor controller, for example and without limitation.
None of the sensor nodes or actor nodes knows, or needs to know, the topology of the network, including information about the nodes that are present. The packets themselves contain neither the sender's address nor the recipient's address, at least in some embodiments. The senders are unaware of which recipients will detect the packets and how they will act on them. The users of each packet are one or more of the actor nodes, wherein the combination of users of a given packet can vary from one transmitted packet to the next. Also, the recipients are unaware of which sensor node a given packet originated at, and there can be multiple sensor nodes concurrently transmitting packets into the network. In short, instead of being driven by addressing each individual node, the automation system disclosed herein is driven by sensor events, in the form of scene indications and the commands to be applied. Advantageously, such an automation system in which the nodes function without knowledge of the network's topology makes the system easier to configure and manage.
In order to describe how to make and use the disclosed system, this specification often refers to “scenes” (including in the foregoing), which are known in the art. However, it will be clear to those skilled in the art after reading this specification, how to make and use embodiments of the present invention in which something other than scenes are managed. For this reason, the generalized term of “composite” is used throughout this specification, of which a scene is but one example.
An illustrative method comprises: storing, by a first actor node, a first plurality of initialized tuples into a memory, each initialized tuple comprising a composite indication, wherein at least some of the composite indications in the first plurality are also stored into a memory by a second actor node that is physically distinct from the first actor node; monitoring, by the first actor node, a plurality of wirelessly-transmitted packets for one or more tuples in the first plurality of initialized tuples, wherein the transmitted packets originate at one or more sensor nodes, and wherein each packet comprises a transmitted tuple; discarding, by the first actor node, a packet in the plurality of transmitted packets being monitored, as a result of the transmitted tuple in the packet corresponding to a tuple that has been already acted upon by the first actor node; and acting, by the first actor node, on the transmitted tuple in a packet that is undiscarded by the first actor node; wherein the acting occurs without the first actor node being addressed by and without the first actor node addressing the second actor node or the one or more sensor nodes.
Another illustrative method comprises: transmitting, by a configuring node, a first tuple to a first actor node and a second tuple to a second actor node, wherein each of the first and second tuple comprises a composite indication; storing, by the first actor node, a first plurality of initialized tuples comprising the first tuple; storing, by the second actor node, a second plurality of initialized tuples comprising the second tuple; monitoring, by the first and second actor nodes, a plurality of wirelessly-transmitted packets, wherein the transmitted packets originate at one or more sensor nodes, and wherein each packet comprises a transmitted tuple; discarding, by at least one of the first and second actor nodes, one or more packets in the plurality of transmitted packets, as a result of the transmitted tuples in the one or more packets corresponding to tuples that have been already acted upon by the corresponding first or second actor node performing the discarding; and acting, by the first actor node, on the transmitted tuple in a packet that is undiscarded by the first actor node; wherein the acting occurs without the first actor node being addressed by and without the first actor node addressing the second actor node or the one or more sensor nodes.
An illustrative system comprises a first actor node, the first actor node comprising:
a memory configured to store a first plurality of initialized tuples, each initialized tuple comprising a composite indication, wherein at least some of the composite indications in the first plurality are also stored in a memory of a second actor node that is physically distinct from the first actor node;
a receiver configured to monitor a plurality of wirelessly-transmitted packets for one or more tuples in the first plurality of initialized tuples, wherein the transmitted packets originate at one or more sensor nodes, and wherein each packet comprises a transmitted tuple; and
a processor configured to:
Another illustrative system comprises:
a configuring node configured to transmit a first tuple to a first actor node and a second tuple to a second actor node, wherein each of the first and second tuple comprises a composite indication;
the first actor node, configured to store a first plurality of initialized tuples comprising the first tuple;
the second actor node, configured to store a second plurality of initialized tuples comprising the second tuple;
wherein the first and second actor nodes are each configured to monitor a plurality of wirelessly-transmitted packets, wherein the transmitted packets originate at one or more sensor nodes, and wherein each packet comprises a transmitted tuple;
wherein at least one of the first and second actor nodes is configured to discard one or more packets in the plurality of transmitted packets, as a result of the transmitted tuples in the one or more packets corresponding to tuples that have been already acted upon by the corresponding first or second actor node performing the discarding; and
wherein the first actor node is configured to act on the transmitted tuple in a packet that is undiscarded by the first actor node, without the first actor node being addressed by and without the first actor node addressing the second actor node or the one or more sensor nodes.
In accordance with an illustrative embodiment of the present invention, automation system 300 is an automation and control system in the home. As those who are skilled in the art will appreciate after reading this specification, however, automation system 300 can be applied to any type of building, including the environment surrounding the building, or to any environment in which automated control can be applied.
Sensor node 301-m, wherein m has a value between 1 and M, inclusive, is an apparatus that comprises memory, processing components, and communication components. Sensor node 301-m is configured to transmit signals providing sensor-related information. Sensor node 301-m is described in detail below and in
Actor node 302-n, wherein n has a value between 1 and N, inclusive, is an apparatus (e.g., a smart appliance, etc.) that comprises memory, processing components, and communication components. Actor node 302-n is configured to receive signals that the node uses to control corresponding appliance functions and/or affect a condition, physical or otherwise, in the node's environment. Actor node 302-n is described in detail below and in
In some embodiments, at least one of the sensor nodes and/or actor nodes is configured to both i) transmit signals providing sensor-related information and ii) receive signals that the node uses to control corresponding appliance functions and/or affect a condition, physical or otherwise, in the node's environment.
Mobile station 303 is a wireless telecommunications terminal that is configured to transmit and/or receive communications wirelessly. It is an apparatus that comprises memory, processing components, and communication components. Mobile station 303 comprises the hardware and software necessary to be compliant with the protocol standards used in the wireless network in which it operates and to perform the processes described below and in the accompanying figures. Mobile station 303 is described in detail below and in
Furthermore, mobile station 303 is illustratively a smartphone with at least packet data capability provided and supported by the network in which it operates and that is configured to execute a software application (e.g., an “app”) for controlling and/or configuring one or more of the other devices depicted in
Telecommunications network 304 is a wireless personal area network (WPAN) that provides the elements of system 300 with connectivity to one other. In accordance with an illustrative embodiment of the present invention, network 304 comprises a communications medium for transmitting packets of data in accordance with the Bluetooth Low Energy (BLE) protocol. In some other embodiments of the present invention, telecommunications network 304 is another type of WPAN (e.g., Z-Wave, ZigBee, Wi-Fi, classic Bluetooth, etc.). As those with ordinary skill in the art will appreciate after reading this disclosure, in some embodiments of the present invention network 304 can comprise one or more of the above-mentioned networks and/or other telecommunications networks, without limitation. Furthermore, as those with ordinary skill in the art will appreciate after reading this disclosure, telecommunications network 304 can comprise elements that are capable of wired and/or wireless communication, without limitation.
Sensor unit 401-j, wherein j has a value between 1 and J, inclusive, is an apparatus that comprises memory, processing components, and communication components, and is configured to gathers information about the environment that is accessible by the sensor unit. Each sensor unit generates an “event” based on a state change as a result of an external event occurring (e.g., pushbutton pressed, motion detected, etc.) or an internal event occurring (e.g., a counter reaching a particular value, etc.). For example and without limitation, a sensor unit autonomously generates events based on a state change of one or more of the following, in any combination:
As those who are skilled in the art will appreciate, after reading this disclosure, sensor unit 401-j can generate events based on different criteria than those listed above.
Processor 403 is a processing device, such as a microprocessor that is well known in the art. Processor 403 is configured such that, when operating in conjunction with the other components of sensor node 301-m, processor 403 executes software, processes data, and telecommunicates according to the operations described herein. In particular, processor 403 determines which parameter values are to be included in packets to be transmitted, based on i) the events generated by the one or more sensor units and ii) associations between each event and the parameter values, as described below. The parameter values, which can include a “composite indication” and a “command indication”, for example, are described in detail below and in
Memory 404 is non-transitory and non-volatile computer storage memory technology that is well known in the art (e.g., flash memory, etc.). Memory 404 is configured to store operating system 411, application software 412, and database 413. The operating system is a collection of software that manages, in well-known fashion, sensor node 301-m's hardware resources and provides common services for computer programs, such as those that constitute the application software. The application software that is executed by processor 403 according to an illustrative embodiment enables sensor node 301-m to perform the functions disclosed herein. Database 413 comprises information about each possible event and associated parameter values.
It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one memory 404; or comprise subdivided segments of memory 404; or comprise a plurality of memory technologies that collectively store the operating system, application software, and database.
Radio communications module 405 is configured to enable sensor node 301-m to telecommunicate with other devices and systems, by receiving signals therefrom and/or transmitting signals thereto via receiver 421 and transmitter 422, respectively. For example, radio communications module 405 communicates with mobile station 303 and transmits data packets that can be used by one or more of actor nodes 302-1 through 302-n. Radio communications module 405 communicates via Bluetooth Low Energy (BLE). In some other embodiments, radio communications module 405 communicates via one or more other radio telecommunications protocols other than or in addition to BLE such as, but not limited to, Z-Wave, ZigBee, Wi-Fi, classic Bluetooth, and so on.
Receiver 421 is a component that enables sensor node 301-m to telecommunicate with other components and systems by receiving signals that convey information therefrom. It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one receiver 421.
Transmitter 422 is a component that enables sensor node 301-m to telecommunicate with other components and systems by transmitting signals that convey information thereto. For example and without limitation, transmitter 422 is configured to transmit packets comprising the parameter values mentioned earlier. It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one transmitter 422.
In accordance with an illustrative embodiment, sensor node 301-m uses radio communications module 405 in order to telecommunicate wirelessly with external devices. It will clear to those skilled in the art, however, after reading the present disclosure, how to make use and use various embodiments of the present invention in which sensor node 301-m communicates via a wired protocol (e.g., X10, KNX, etc.) over physical media (e.g., cable, wire, etc.) with one or more external devices, either in addition to or instead of the wireless capability provided by radio communications module 405.
Actor unit 502-k, wherein k has a value between 1 and K, inclusive, is an apparatus that comprises memory, processing components, and communication components, and is capable of doing something in the course of being affected by signals (e.g., data packets, etc.) originating externally to the actor component, such as from one or more of sensor nodes 301-1 through 301-M, as described in detail below. Each actor unit 502-k takes decisions that are based on signals from one or more sources and performs appropriate actions upon the actor's environment. Each actor unit acts upon its environment in well-known fashion. In some embodiments, an actor unit is or comprises an actuator, as is known in the art.
Actor unit 502-k is configured to receive, transmit, process, and/or relay signals conveying data, as well as being configured to affect a condition, physical or otherwise, in its environment. For example and without limitation, the condition being affected can be:
As those who are skilled in the art will appreciate, after reading this disclosure, actor unit 502-k can provide a different function than those described above. Furthermore, actor node 302-n can comprise any combination of and any number of actor functions. As those who are skilled in the art will appreciate, after reading this disclosure, actor node 302-n comprising one or more actor functions can be in a variety of forms, such as a light bulb as part of a lighting system, a media player as part of an audio/video system, a heater as part of an environment control system, an outgoing-email server as part of a messaging system, an actor in a water sprinkler system, a robot or robotic arm, a pan/tilt camera, a switch, a motor, a servo mechanism, and so on.
Processor 503 is a processing device that is similar to processor 403. Processor 503 determines which packets are to be processed and how each processed packet is to be used, in part based on the parameter values (e.g., composite indication, command indication, etc.) contained in each packet.
Memory 504 is non-transitory and non-volatile computer storage memory technology that is well known in the art (e.g., flash memory, etc.) and is similar to memory 404. Memory 504 is configured to store operating system 511, application software 512, and database 513. The operating system is a collection of software that manages, in well-known fashion, actor node 302-n's hardware resources and provides common services for computer programs, such as those that constitute the application software. The application software that is executed by processor 503 according to an illustrative embodiment enables actor node 302-n to perform the functions disclosed herein. Database 513 comprises information about each relevant parameter value, as described below.
Radio communications module 505 is configured to enable actor node 302-n to telecommunicate with other devices and systems, by receiving signals therefrom and/or transmitting signals thereto via receiver 521 and transmitter 522, respectively. Receiver 521 and transmitter 522 are similar to receiver 421 and transmitter 521, respectively. Radio communications module 505 communicates with mobile station 303 and detects data packets that are transmitted by one or more of sensor nodes 301-1 through 301-M. Radio communications module 505 communicates via Bluetooth Low Energy (BLE).
Processor 603 is a processing device that is similar to processor 403. For example, processor 603 determines which configuration messages are to be transmitted to which sensor nodes and actor nodes, as described below.
Memory 604 is non-transitory and non-volatile computer storage memory technology that is well known in the art (e.g., flash memory, etc.) and is similar to memory 404. Memory 604 is configured to store operating system 611, application software 612, and database 613. The operating system is a collection of software that manages, in well-known fashion, mobile station 303's hardware resources and provides common services for computer programs, such as those that constitute the application software. The application software that is executed by processor 603 according to an illustrative embodiment enables mobile station 303 to perform the functions disclosed herein. Database 613 comprises information about configuring each sensor node and actor node, as described below.
Radio communications module 605 is configured to enable mobile station 303 to telecommunicate with other devices and systems, by receiving signals therefrom and/or transmitting signals thereto via receiver 621 and transmitter 622, respectively. For example, radio communications module 605 communicates with sensor nodes 301-1 through 301-M and actor nodes 302-1 through 302-N. Radio communications module 605 communicates with the sensor and actor nodes via Bluetooth Low Energy (BLE) and communicates within the cellular network in accordance with a cellular protocol. In some other embodiments, radio communications module 605 communicates via one or more other radio telecommunications protocols.
Receiver 621 is a component that enables mobile station 303 to telecommunicate with other components and systems by receiving signals that convey information therefrom. It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one receiver 621.
Transmitter 622 is a component that enables mobile station 303 to telecommunicate with other components and systems by transmitting signals that convey information thereto. It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one transmitter 622.
Configuring the Sensor Nodes and Actor Nodes:
Mobile station 303 detects commands being typed by its user, who is using the smartphone application to configure his home automation system, and translates those commands into configuration information. The configuration information represents one or more “composites,” each of which is something that is composed of separate parts. An example of a composite is a “scene,” which is defined by a group of presets. To simplify control of a group of devices in a given space (e.g., a room, etc.), it is convenient to define presets for each appliance (e.g., a smart bulb, etc.), associated with certain scenarios. As those who are skilled in the art will appreciate after reading this specification, a composite is a generalization that can refer to a scene or to something else.
As discussed later in this specification, an intended effect associated with first defining and configuring, and then engaging a composite during run-time, is that the user of automation system 300 perceives a set of actor node appliances as adjusting in unison as part of the user-defined composite having been engaged. In accordance with the illustrative embodiment, this occurs without any direct communication, in the form of actor-specific addressing, or direct coordination, in the form of actor-specific commands, between the one or more sensor nodes involved and the one or more actor nodes involved. Furthermore, this effect relies on the proper information being initially configured for each user-defined composite, across the sensor and actor nodes involved in each defined composite.
As discussed above and in
As discussed above and in
As those who are skilled in the art will appreciate after reading this specification, the set of initialized parameters can be different than those listed above, in order to suit the particular implementation. For example, there can be a different number of possible composite modes, with different defined values than “exclusive” and “coexisting.”
Referring to the specific example depicted in
As those who are skilled in the art will appreciate, after reading this specification, there are various implications in not having all nodes being initialized for all composites. As one example, sensor node 301-2 will not be involved in the enabling of composites 703 and 704 because these composites do not require sensor node 301-2's involvement. As another example, actor nodes 302-1 and 302-2 will not be involved in the enabling of composites 702 and 703, respectively, because these composites do not require the involvement of these actor nodes. Notably, one or more of the composite indications defined at mobile station 303 might be initialized in multiple actor nodes, while one or more of the composite indications might be initialized in only a single actor node.
In regard to method 700, as well as to the other methods depicted in the flowcharts and message flow diagrams contained herein, it will be clear to those having ordinary skill in the art, after reading the present disclosure, how to make and use alternative embodiments of the disclosed methods in which the recited operations, sub-operations, and messages are differently sequenced, grouped, or sub-divided—all within the scope of the present invention. It will be further clear to those skilled in the art, after reading the present disclosure, how to make and use alternative embodiments of the disclosed methods wherein some of the described operations, sub-operations, and messages are optional, are omitted, or are performed by other elements and/or systems.
Operations of Sensor Node 301-m:
In accordance with operation 803, node 301-1 receives a signal of the physical condition being monitored (e.g., ambient lighting, etc.).
In accordance with operation 805, node 301-1 generates an event based on both the received signal and applicable logic.
In accordance with operation 807, node 301-1 generates a data packet containing the composite indication and command indication mapped to the particular generated event, based on the information configured in operation 801.
In accordance with operation 809, node 301-1 transmits the generated packet via telecommunications network 304. In accordance with an illustrative embodiment of the present invention, no identifier (e.g., network address, etc.) of any actor node is present in the generated packet. Notably, what this means is that each actor node will be monitoring not for its own identifier in each transmitted packet, but for relevant composite indications contained in the packets.
In some embodiments of the present invention, no identifier (e.g., network address, etc.) of the sensor node is present in the generated packet. Notably, this means that an actor node that detects and uses the packet does not know the identity of the transmitting sensor node, nor does it have to. Because of this, the transmitting sensor node does not expect an acknowledgment packet from the actor node; therefore, each transmitting sensor node might transmit the generated packet more than once in some embodiments, in order to improve the likelihood that the packet is detected and acted upon by the actor node.
After operation 809, control of execution returns to operation 803.
Concurrently with sensor node 301-1 operating in accordance with the operations described above, one or more physically distinct sensor nodes (e.g., sensor node 301-2, etc.) in addition to sensor node 301-1 can operate in accordance with the operations described above. In this way, multiple sensor nodes can be concurrently transmitting packets via network 304, and without any coordination of each other.
Operations of Actor Node 302-n:
Actor node 302-1 then begins monitoring transmitted packets for one or more tuples—a “tuple” as used herein being a non-empty, ordered list of elements—contained in the plurality of packets being transmitted by one or more sensor nodes. In accordance with operation 903 and as part of the ongoing monitoring, node 302-1 detects a transmitted packet containing a transmitted tuple.
In accordance with operation 905, node 302-1 determines whether it has already served the packet. If it has, control of execution proceeds to operation 909. If not, control of execution proceeds to operation 907. In some embodiments of the present invention, node 302-1 determines whether it has already served the packet by examining a timestamp contained in the packet and comparing the timestamp to an internal clock, thereby checking whether it has already seen this packet within a predetermined time interval.
In accordance with operation 907, node 302-1 determines whether the composite indication contained in the packet has been configured in its memory (i.e., as part of operation 901). If it has not been configured, control of execution proceeds to operation 909. If it has been configured, control of execution proceeds to operation 911.
In accordance with operation 909, node 302-1 discards the detected packet, taking no further action with the packet. Control of execution then returns to operation 903.
In accordance with operation 911, node 302-1 acts on the detected packet, as described below and in
Concurrently with actor node 302-1 operating in accordance with the operations described above, one or more physically distinct actor nodes (e.g., actor node 302-2, etc.) in addition to actor node 302-1 can operate in accordance with the operations described above. In this way, multiple actor nodes can be concurrently monitoring for and detecting packets transmitted via network 304, from one or more sensor nodes and without any coordination of each other. Notably, multiple actor nodes might act on a particular packet, based in part on the composite indication contained in the packet being relevant to more than one actor node and possibly on additional composite indications having been indicated in previous packets, as discussed in detail below.
Acting on a Data Packet:
In accordance with operation 1001, actor node 302-1 determines whether the composite mode previously initialized in accordance with operation 901 has a value of “exclusive.” If it has such a value, control of execution proceeds to operation 1003. If it does not, control of execution proceeds to operation 1009.
An actor node can act on more than one composite concurrently. Multiple composites are considered to be concurrently active at a particular actor node when the node has received packets from one or more sensor nodes, indicating the composites and with command indication values of “on”. The “composite mode” determines whether a particular composite is “exclusive” or “coexisting.” If the composite is identified as being exclusive, only the control value for that composite can be engaged at any given time. In contrast, if one or more composites are defined as being coexisting at a particular actor node, then the corresponding control values of those composites need to be considered in determining the control value to be applied, as discussed below and in accordance with operations 1009 through 1013.
In regard to the “exclusive” mode of operation, in accordance with operation 1003 node 302-1 turns off all composites that have been defined in the node.
In accordance with operation 1005, node 302-1 determines whether the command indication contained in the detected packet has a value of “on.” If it has such a value, control of execution proceeds to operation 1007. If it does not, control of execution proceeds to operation 1015.
In accordance with operation 1007, node 302-1 selects the set of parameter values (i.e., composite mode, control value) corresponding to the composite indication contained in the packet. The node then applies these parameter values unconditionally. Control of execution then proceeds to operation 1015.
In accordance with operation 1009, in the case of the composite mode not having been set to “exclusive”—that is, the composite mode is instead set to “coexisting”—node 302-1 determines whether determines whether the command indication contained in the detected packet has a value of “on.” If it has such a value, control of execution proceeds to operation 1011. If it does not, control of execution proceeds to operation 1013.
When a composite is has a mode value of “coexisting,” the control value actually applied in controlling the actor node (i.e., the “applied control value”) is a result of an arbitration function. The arbitration function determines the applied control value based on active inputs and, in some embodiments of the present invention, depends on the type of actor node. For example, the arbitration function of an analog lamp dimmer might be based on determining the maximum of two or more values; if multiple composites are active, with individual control values of 30%, 40%, and 70% brightness levels, the maximum is selected, resulting in the applied control value at the dimmer being the 70% brightness level. An implication of this is that if the dimmer node first receives a packet indicating composite 1 and has a stored control value for composite 1 of 70% and then receives a packet indicating composite 2 with a stored value of 40%, the dimmer node will maintain the 70% brightness level. In this case, only when the dimmer node detects that composite 1 (with 70% brightness) is turned off will the dimmer node apply the 40% brightness level, and only if that level is the maximum among all of the composites that are still active.
Other arbitration functions are possible. For example, for a window shade the arbitration function might apply the most recently-changed individual control value. The arbitration function of an air conditioner might be based on determining the minimum of two or more values; if multiple composites are active, with individual control values of 60° F. and 65° F. temperature levels, the minimum is selected, resulting in the applied control value at the air conditioner being the 60° F. temperature level.
In accordance with operation 1011 (i.e., command indication set to “on”), node 302-1 selects the individual control values of all coexisting composites that are currently active, including the control value of the composite indicated in the current packet. Node 302-1 then applies an arbitration function, as discussed above, in order to determine which control value to apply. Control of execution then proceeds to operation 1015.
In accordance with operation 1013 (i.e., command indication set to “off”), node 302-1 selects the individual control values of all coexisting composites that are currently active, excluding the control value of the composite indicated in the current packet because the composite is being deactivated based on the command indication being set to “off”. Node 302-1 then applies an arbitration function, as discussed above, in order to determine which control value to apply. Control of execution then proceeds to operation 1015.
In accordance with operation 1015, node 302-1 generates an output signal to control one or more of actor units 502-1 through 502-K, based on the values applied in accordance with one of operations 1007, 1011, or 1013. For example, actor node 302-1 might dim a light to a predetermined level of brightness or raise the room temperature to a predetermined level of warmth, depending on the applied control value.
Examples of Composite Modes:
Continuing with the examples in
Alternatively, after having applied the parameter values in set 1101, actor node 302-1 might detect a data packet containing a composite indication value of “3”, as indicated by the shading in parameter set 1103 and having a stored control value of 20% brightness. Because the composite mode stored for composite indication 3 is “exclusive” (denoted as “excl”), actor node 302-1 knows to apply only the parameter values for composite indication 3, as in accordance with operation 1007. As a result, the 20% brightness value is applied and the corresponding output signal is generated to effect the change.
Examples of Automation System 300:
Meanwhile, actor nodes 302-1 through 302-3 are monitoring for data packets transmitted in network 304. Because they have been configured to do so, actor node 302-1 will act on packets that contain configuration indications 1, 3, 6, 7, or 10; actor node 302-2 will act on packets that contain indications 1, 2, 3, 8, or 9; and actor node 302-3 will act on packets that contain indications 3, 4, 6, 8, or 9, as depicted. As those who are skilled in the art will appreciate, after reading this specification, each actor node can be configured to act on packets having a different set of composite indications, in any combination and for any total number of composite indications. Furthermore, the set of possible composites can vary from one actor node to the next.
All three actor nodes presently detect the packet containing configuration indication 3 and act on the packet accordingly. As depicted in parameter set 1202, actor node 302-1, a lamp switch of a first lamp, has a control value for configuration 3 of “On” and, as a result, generates a signal to turn the lamp on. As depicted in parameter set 1203, actor node 302-2, a lamp dimmer of a second lamp capable of color variation, has control values of “Blue, 90%” and, as a result, generates a signal to adjust the blue lighting component to 90% brightness. As depicted in parameter set 1204, actor node 302-3, a thermostat, has a control value of “65° F.” and, as a result, generates a signal to change the temperature set point accordingly.
An end result associated with the illustrated example is that composite 3 is acted on concurrently and in aggregate by the three actor nodes. An intended effect is that the user of automation system 300 perceives that the first lamp, the second lamp, and the room temperature adjust in unison as part of the user-defined composite (e.g., scene, etc.) having been implemented. In accordance with the illustrative embodiment, however, this occurs without any direct communication or coordination between sensor node 301-1 and any of actor nodes 302-1 through 302-3, and without any direct communication or coordination among any of the actor nodes.
Meanwhile, as depicted in parameter set 1302, sensor node 301-3 is capable of generating and transmitting data packets for composites 1, 3, 7, 21, and 39. As denoted by the shading for the snapshot depicted, sensor node 301-3 generates and transmits into network 304 a data packet containing a composite indication value of “7.”
Meanwhile, actor nodes 302-4 through 302-6 are monitoring for data packets transmitted in network 304. All three actor nodes detect each packet containing configuration indication 7 and act on (or discard) the packets accordingly. As depicted in parameter set 1303, actor node 302-4, a lamp switch of a first lamp, has no composite indication value of “7” stored and, as a result, discards the packet. As depicted in parameter set 1304, actor node 302-5, a lamp dimmer of a second lamp capable of color variation, has control values of “Red, 30%” and, as a result, generates a signal to adjust the red lighting component to 30% brightness. As depicted in parameter set 1205, actor node 302-6, a thermostat, has a control value of “65° F.” and, as a result, generates a signal to change the temperature set point accordingly.
Similar to the previous example, an end result associated with the illustrated example is that composite 7 is acted on concurrently and in aggregate by the three actor nodes. In accordance with the illustrative embodiment, however, this occurs without any direct communication or coordination between sensor nodes 301-2 and 301-3 and any of actor nodes 302-4 through 302-6, without any direct communication or coordination between either of the sensor nodes, and without any direct communication or coordination among any of the actor nodes.
It is to be understood that the disclosure teaches just one example of the illustrative embodiment and that many variations of the invention can easily be devised by those skilled in the art after reading this disclosure and that the scope of the present invention is to be determined by the following claims.
This application is a continuation of application Ser. No. 14/467,407, filed Aug. 25, 2014 and incorporated by reference herein.
Number | Name | Date | Kind |
---|---|---|---|
20030040812 | Gonzales et al. | Feb 2003 | A1 |
20030191793 | Dolin, Jr. et al. | Oct 2003 | A1 |
20060242295 | Husemann et al. | Oct 2006 | A1 |
20080157980 | Sachanandani | Jul 2008 | A1 |
Entry |
---|
“Notice of Allowance” issued in parent U.S. Appl. No. 14/467,70, dated Apr. 13, 2016, Publisher: USPTO, Published in: US. |
“International Search Report and Written Opinion of the International Search Authority”, issued in counterpart International Patent Application No. PCT/US2015/046546, dated Nov. 26, 2015. |
Riccardo De Masellis et al, “Smart Home Planning Programs”, “2010 7th International Conference” on, IEEE, Piscataway, NJ, Jun. 28, 2010, pp. 1-6, vol. XPO31718815, No. 978-1-4244-6485-2, Publisher: Service Systems and Service Management (ICSSSM), Published in: US. |
“Notice of Allowance” issued in parent U.S. Appl. No. 14/467,70, dated Dec. 17, 2015, Publisher: USPTO, Published in: US. |
Number | Date | Country | |
---|---|---|---|
20160277281 A1 | Sep 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14467407 | Aug 2014 | US |
Child | 15171843 | US |