Synchronization of controller states in a distributed control system

A distributed control system, comprising a data network with a plurality of controller nodes that maintain and share their internal states with one another. The controller nodes can be luminaires that are capable of controlling the ambient lighting within a building area. There are one or more ambient light sensors within the data network for sensing and reporting the ambient light level. The controller luminaire nodes are members of a defined group of nodes that share, with one another, information for synchronizing their internal states, based in part on the ambient light levels that the one or more sensors are reporting. Meanwhile, each luminaire node also continually updates its own internal state based on the synchronization data received from the other nodes.

FIELD OF THE INVENTION

The present invention relates to building automation and control in general, and, more particularly, to synchronization of internal controller states across processors in a distributed control system.

BACKGROUND OF THE INVENTION

“Commercial building automation,” or “commercial automation,” refers to the use of computer and information technology to control commercial building systems, such as lighting, HVAC, audio-visual, smoke detection, security, and shading, among others. Using specialized hardware and control logic, building devices can monitor their environment and can be controlled automatically. Although commercial automation has been available at some level of sophistication for some time, it steadily becomes more practical, from both a technological and cost perspective.

A sophisticated commercial automation and control system might 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 or actors (e.g., motorized valves, switches, etc.). The system might also include a human-machine interface device that enables an occupant of the building to interact with the system. The interface can be a specialized terminal or an application (“app”) running on a smartphone or tablet computer. The various system devices communicate over dedicated wiring, or over a wired network, or wirelessly, using one or more protocols.

Lighting automation and control systems now exist in which luminaires that comprise sensors, lamps, and control logic are networked together, in what is sometimes referred to as “connected lighting” or networked “smart lighting.” In such a network, the sensors that are associated with the luminaires collect data about the local environment, such as data related to ambient lighting in the vicinity of the luminaires. The networked luminaires communicate with each other, in some cases sharing the sensor data, and adjust the light output of the lamps via the control logic, with some level of coordination across the networked luminaires.

FIG. 1depicts building control system100in the prior art. System100comprises: sensor nodes101-1through101-G, wherein G is a positive integer; actor nodes102-1through102-H, wherein H is a positive integer; and controller110. The aforementioned elements are logically interconnected as shown and are physically interconnected, either wirelessly or via wired connections.

Sensor nodes101-1through101-G include one or more of: motion sensors, occupancy sensors, temperature sensors, light sensors, and air quality sensors. Actor nodes102-1through102-H are building devices 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, building control system100is capable of triggering and acting on certain conditions as a function of sensor readings, such as turning on lights when ambient light is low or when motion is detected, controlling HVAC systems in response to temperature variations, and so forth. Controller110coordinates 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.

SUMMARY OF THE INVENTION

Automation and control systems also exist in which a central controller is not present. In some of these distributed control systems, sensor nodes are configured to provide data directly to actor nodes, wherein the data pertains to one or more physical conditions that are being monitored by the sensors. When the actor nodes receive the sensor data, the actor nodes can use the sensor data in order to control units that are configured to perform one or more functions, such as lamps that are configured to provide light to an area within a building.

Distributed control systems have some advantages over centralized control systems, including in some cases the elimination of a single point of failure and the reduction of processor load. Furthermore, technologies such as Bluetooth mesh networking can enable a single, published message to be processed by more than one network node; for example, each sensor data message can be acted upon by more than one node. However, in mesh networks the communication between the sensor nodes and actor nodes, for example, is not necessarily reliable, in that one or more of the actor nodes might not receive some of the messages containing the sensor data.

To compound problems, certain control systems that are based on sequential logic, such as some lighting control systems, rely on the internal states of each of the controllers of the actor nodes being maintained correctly with respect to one another. Consequently, one or more output values from the controllers, or from the controller logic, of the actor nodes might be out of synch with one another and, consequently, can cause problems with performing the control functions of the automation and control system.

The present invention enables, in a data network of a distributed control system, a plurality of controller nodes to maintain and share their internal states with one another, thereby promoting more effective control of the physical condition being monitored and controlled, such as the ambient light level. In accordance with the illustrative embodiment of the present invention, the controller nodes are luminaires that are capable of controlling the ambient lighting within a building area. There are also one or more ambient light sensors within the data network for sensing and reporting the ambient light level within the building area. The controller luminaire nodes are members of a defined group of nodes that share, with one another, data for synchronizing their internal states, based in part on the ambient light levels that the one or more sensors are reporting. Meanwhile, each luminaire node also continually updates its own internal state based on the synchronization data received from the other nodes.

Each node in the synchronization group comprises: a receiver, a controller, an actor unit or an output controlling an actor unit, and a transmitter. The receiver, as part of a network interface, is configured to receive synchronization messages from other nodes in the plurality of nodes, wherein each synchronization message contains a value of an internal state.

The controller of the illustrative embodiment is a Proportional-Integral (“P-I”) controller, and the internal-state value being synchronized is based on the Integral (“I”) control term. The controller is configured to generate a correction value that is dependent on the value of the internal state that is received in the synchronization message. The controller is also configured to generate an output value for controlling the actor unit, which is configured to perform a function that is dependent on the output value. The output value is dependent on the controller's updated internal-state value, which is dependent on the correction value.

The transmitter, as part of the network interface, is configured to transmit, into the data network, one or more synchronization messages as needed containing a value of the controller's internal state. Thus, each node is capable of sharing its internal state with other nodes, in addition to receiving and acting upon synchronization data received from the other nodes.

The system disclosed herein is advantageous over at least some approaches in the prior art, in that it avoids the use of acknowledgment messages as responses to the sensor data messages, thereby avoiding unnecessary message transmission overhead. The disclosed system also avoids imposing timing constraints across the controller nodes, thereby enabling each controller node to perform optimally according to its own timing considerations, while at the same time accounting for state-related information received from other controller nodes.

In accordance with the illustrative embodiment, the controller nodes within the data network of the illustrative embodiment are luminaires comprising lamps that provide light to, and serve as light sources for, their environment within a building. The controller nodes control the ambient light within at least a portion of the building. As those who are skilled in the art will appreciate after reading this specification, however, the nodes can be devices that are other than luminaires and the physical condition being controlled can be something other than the ambient light levels in the building. Furthermore, the controller unit of a node can be a different type of controller than a P-I controller, and the node can share and use a different type of internal-state value than one that is based on the Integral control term.

An illustrative data network that includes a plurality of nodes, comprises: a first controller node in the plurality of nodes, comprising: (i) a receiver configured to receive wirelessly a first message from another node in the plurality of nodes, wherein the first message contains a first state value of a first internal state, (ii) a controller configured to generate a first correction value, IScorr1, that is dependent on the first state value of the first internal state, received in the first message, and (iii) a transmitter configured to transmit wirelessly a second message containing a second state value of the first internal state; and a second node in the plurality of nodes, comprising: (i) a receiver configured to receive wirelessly the second message, and (ii) a controller configured to generate a second correction value, IScorr2, that is dependent on the second state value of the first internal state, received in the second message; wherein the first and second nodes are further configured to repeatedly transmit messages containing values of the first internal state, wherein the messages comprise the first and second messages.

Another illustrative data network that includes a plurality of nodes, comprises: a first luminaire in the plurality of luminaires, comprising: (i) a receiver configured to receive wirelessly a first message from another luminaire in the plurality of luminaires, wherein the first message contains a first state value of a first internal state, (ii) a controller configured to generate a first correction value, IScorr1, that is dependent on the first state value of the first internal state, received in the first message, and (iii) a lamp configured to provide light at a light output that is dependent on the first correction value, and (iv) a transmitter configured to transmit wirelessly a second message containing a second state value of the first internal state; and a second luminaire in the plurality of luminaires, comprising: (i) a receiver configured to receive wirelessly the second message, (ii) a controller configured to generate a second correction value, IScorr2, that is dependent on the second state value of the first internal state, received in the second message, and (iii) a lamp configured to provide light at a light output that is dependent on the second correction value; wherein the first and second luminaires are further configured to repeatedly transmit messages containing values of the first internal state, wherein the messages comprise the first and second messages.

Yet another illustrative data network that includes a plurality of nodes, comprises: a sensor configured to monitor ambient light level and to report values of the ambient light level; a first luminaire in the plurality of luminaires, comprising: (i) a receiver configured to receive wirelessly a first message from another luminaire in the plurality of luminaires, wherein the first message contains a first state value of a first internal state, (ii) a controller configured to generate a first correction value, IScorr1, that is dependent on the first state value of the first internal state, received in the first message, and (iii) a lamp configured to provide light at a light output that is dependent on the first correction value, and (iv) a transmitter configured to transmit wirelessly a second message containing a second state value of the first internal state; and a second luminaire in the plurality of luminaires, comprising: (i) a receiver configured to receive wirelessly the second message, (ii) a controller configured to generate a second correction value, IScorr2, that is dependent on the second state value of the first internal state, received in the second message, and (iii) a lamp configured to provide light at a light output that is dependent on the second correction value; wherein the first and second luminaires are further configured to repeatedly transmit messages containing values of the first internal state, wherein the messages comprise the first and second messages, and wherein one or more of the values of the first internal state are dependent on the values of the ambient light level.

DETAILED DESCRIPTION

Based on—For the purposes of this specification, the phrase “based on” is defined as “being dependent on” in contrast to “being independent of”. The value of Y is dependent on the value of X when the value of Y is different for two or more values of X. The value of Y is independent of the value of X when the value of Y is the same for all values of X. Being “based on” includes both functions and relations.

Control—For the purposes of this specification, the infinitive “to control” and its inflected forms (e.g., “controlling”, “controlled”, etc.) should be given the ordinary and customary meaning that the terms would have to a person of ordinary skill in the art at the time of the invention.

Controller Node—For the purposes of this specification, the term “controller node” is defined as a node in a data network comprising a controller that is configured to control an actor unit by generating one or more output values that are used by the actor unit.

Sensor Node—For the purposes of this specification, the term “sensor node” is defined as a node in a data network comprising a sensor unit that is configured to monitor a physical condition and to report sensor data values of the physical condition.

Generate—For the purposes of this specification, the infinitive “to generate” and its inflected forms (e.g., “generating”, “generated”, etc.) should be given the ordinary and customary meaning that the terms would have to a person of ordinary skill in the art at the time of the invention.

Lamp—For the purposes of this specification, the term “lamp” is defined as a device for providing illumination, comprising an electric bulb and its holder.

Luminaire—For the purposes of this specification, the term “luminaire” is defined as a lighting unit comprising a lamp and a controller for controlling the lamp. A luminaire is an example of a controller node.

Network address—For the purposes of this specification, the term “network address,” or “computer network address,” is defined as a numerical label assigned to each device (e.g., sensor node, actor node, configuring node, etc.) participating in a computer network. For example, an Internet Protocol address (IP address) is a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. A “source address” is an example of a network address, in that it specifies the device that originated a transmitted data packet or message conveyed by one or more packets.

Receive—For the purposes of this specification, the infinitive “to receive” and its inflected forms (e.g., “receiving”, “received”, etc.) should be given the ordinary and customary meaning that the terms would have to a person of ordinary skill in the art at the time of the invention.

Transmit—For the purposes of this specification, the infinitive “to transmit” and its inflected forms (e.g., “transmitting”, “transmitted”, etc.) should be given the ordinary and customary meaning that the terms would have to a person of ordinary skill in the art at the time of the invention.

To facilitate explanation and understanding of the present invention, the following description sets forth several details. However, it will be clear to those having ordinary skill in the art, after reading the present disclosure, that the present invention may be practiced without these specific details, or with an equivalent solution or configuration. Furthermore, some structures, devices, and operations that are well known in the art are depicted in block diagram form in the accompanying figures in order to keep salient aspects of the present invention from being unnecessarily obscured.

FIG. 2depicts building control system200in accordance with the illustrative embodiment, which comprises sensor nodes201-j, where j is a positive integer from 1 to J and actor nodes202-k, where k is a positive integer from 1 to K, and where the plurality of nodes communicate with each other within data network210. In control system200, sensor node201-j(hereinafter generically “sensor node201”) is depicted as being able to communicate with each actor node202-k(hereinafter generically “actor node202”).

Control system200is an example of a system having distributed logic, in contrast to control system100in the prior art that has centralized control logic (provided by system controller110). More particularly, in control system200in the illustrative embodiment, the functionality that is provided in system100by system controller110, is distributed among other elements of the control system, particularly among actor nodes202. In some alternative embodiments of the present invention, some or all of the functionality that is provided in system100by system controller110, is distributed among sensor nodes201.

Sensor nodes201are configured to provide data to actor nodes202on one or more physical conditions that are being monitored by the sensors. When the sensor data is received by actor nodes202, the actor nodes can use the sensor data to control actor units as described below, wherein the actor units are configured to perform one or more functions. The communication, however, between sensor nodes201and actor nodes202, as represented by arrows, is not necessarily reliable. The communication can be unreliable in the sense that one or more of actor nodes202might not receive one or more messages containing sensor data. Consequently, one or more output values from the controllers or controller logic of actor nodes202might be out of synch with one another and need to be coordinated, in the manner described below and in accordance with the illustrative embodiment.

As depicted inFIG. 2, sensor functionality and actor functionality reside in separate nodes. As those who are skilled in the art will appreciate after reading this specification, in some embodiments a sensor node can further comprise actor functionality, or an actor node can further comprise sensor functionality, or both.

Data network210is a mesh network, as is known in the art, and enables communication among sensor nodes201-1through201-J and actor nodes202-1through202-K. To this end, the nodes within network210distribute data (e.g., the packet-based messages, etc.) amongst one another in accordance with Bluetooth mesh networking. A “mesh network” is a network topology in which each node relays data for the network. The nodes that are involved cooperate in the distribution of data in the network. A mesh network can relay messages using a flooding technique or a routing technique, or a combination of the two.

In some other embodiments, network210communicates via one or more other radio telecommunications protocols other than or in addition to Bluetooth mesh networking such as, but not limited to, Z-Wave, ZigBee, Thread, Wi-Fi, straight Bluetooth Low Energy (BLE), classic Bluetooth, and so on. Furthermore, as those who are skilled in the art will appreciate after reading this specification, at least some network nodes depicted inFIG. 2in some embodiments can be connected directly and non-wirelessly to one other, at least for some purposes and/or for some portion of time, such as through Universal Serial Bus (USB), FireWire™, or Thunderbolt™, for example and without limitation.

FIG. 3depicts at least some of the nodes within data network210, in accordance with the illustrative embodiment. The nodes are depicted according to how they are situated within building300, according to a floor plan. Building300is equipped with network nodes301-1through301-M, wherein M is a positive integer (e.g., M equal to 9 as depicted, etc.). As depicted inFIG. 3, nodes301-1through301-M are light fixtures (or “luminaires” and denoted by “L”). The networked nodes communicate wirelessly with one another via transmitted signals302-1,302-2, and so forth, via network210. In some alternative embodiments of the present invention, however, one or more of the depicted elements can communicate via wired connections.

Node301-m, wherein m has a value between 1 and M, inclusive, is an apparatus that comprises memory, processing components, and communication components. Node301-mis configured to transmit signals302-mthat convey control-related information, such as packet-based messages. Node301-mis also configured to provide light at an output that is based, at least in part, on the content of one or more messages received from one or more other luminaires (e.g., sensor data messages, synchronization messages, etc.). In some embodiments of the present invention, node301-mcan also be configured to sense one or more physical conditions and can transmit messages based on the one or more physical conditions sensed. Node301-mis described in detail below and inFIG. 4.

In accordance with the illustrative embodiment, nodes301-1through301-M are luminaires comprising lamps that provide light to, and serve as light sources for, their environment within building300. As those who are skilled in the art will appreciate after reading this specification, however, the nodes can be devices that are other than luminaires. For example, one or more of the luminaires can be other types of nodes, such as sound systems or sprinklers, that provide a different type of output than light, such as sound or water.

Nodes301-1through301-M are similar to actor nodes202, in that they each comprise a controller unit and an actor unit in the illustrative embodiment, a luminaire with controller logic and comprising a controllable lamp as an actor unit. At least some of nodes301-1through301-M further comprise sensor units, such as ambient light sensors (ALS) that measure illuminance; nodes comprising sensor units are also considered to be sensor nodes, such as sensor nodes201. In some embodiments, some nodes might be present within the depicted data network that are sensor nodes, but that are not also controller nodes or actor nodes.

In accordance with the illustrative embodiment, nodes301-1through301-M constitute an automation and control system—more specifically, a networked lighting system—in a commercial building, such as an office space or a retail space. As those who are skilled in the art will appreciate after reading this specification, however, the luminaires can also be applied to a different type of building, such as a home, or to include the environment surrounding the building, or to any environment in which automated control can be applied.

Furthermore, building300can be a different type of structure with a roof and walls, or can instead be a defined area that comprises multiple sub-areas (e.g., open space, one or more conference rooms, one or more corridors, one or more closed offices, etc.). At least a portion of the area and/or sub-areas can be defined by something other than a roof and/or walls (e.g., a tent, an outdoor pavilion, a covered parking lot, a stadium or arena, etc.).

As depicted, nodes301-1through301-M are positioned uniformly in a grid-like pattern. However, as those who are skilled in the art will appreciate after reading this specification, the luminaires can be positioned in any geometry or geometries with respect to one another, provided that each luminaire is within communication range of one or more of the other luminaires.

FIG. 4depicts the salient components of node301-maccording to the illustrative embodiment. Node301-mis based on a data-processing apparatus whose hardware platform comprises: sensor unit401-1through401-J, wherein J is a positive integer, actor unit402-1through402-K, wherein K is a positive integer, controller403, memory404, and radio communications module405, interconnected as shown.

Sensor unit401-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 gather information about the environment that is accessible by the sensor unit. Each sensor is configured to monitor a particular physical condition in well-known fashion (e.g., temperature, ambient light, humidity, occupancy, etc.). For example, at least some of nodes301-1through301-9comprise an ambient light sensor.

Each sensor unit is configured to report a state of the condition by providing input signals to controller403, wherein the values of the input signals are representative of the states being reported. A given sensor unit401-jcan report discrete input signal values and/or a continuum of states and can report states at particular times and/or continuously and/or asynchronously. A change in state, which is determined by controller403as described below, can occur based one or more sensor units detecting changes in the following, in any combination:i. environmental probes (e.g., temperature, ambient light, motion, infrared signature, humidity, etc.).ii. electrical inputs (i.e., binary, analog, bus), including from a switch.iii. signals received via radio (e.g., proximity beacons, etc.).iv. a state of the internal logic, woken up periodically based on time or on an external event.
For example and without limitation, a state change can correspond to a switch being actuated, occupancy being detected, a timer or counter reaching a predefined value, and so on.

Actor unit402-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 originating externally to the actor component, such as from controller403, as described in detail below. In particular, actor unit402-kis configured to perform a function that is dependent on an output value from controller403, which in turn is based on an internal state value derived from a correction value, as described below. Each actor unit acts upon its environment in well-known fashion.

Actor unit402-kis 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 by generating a control signal. In accordance with the illustrative embodiment, actor unit402-1of each node301-1through301-9is a lamp whose output is modifiable by controller logic executed by controller403, based on an internal state value that is calculated as described below.

As those who are skilled in the art will appreciate after reading this disclosure, actor unit402-kcan provide a different function than controlling a lamp to give light according to a configurable light output. For example and without limitation, the condition being affected can be:i. lighting, which can be adjusted (e.g., turning on or off, changing light output, changing brightness, changing color or mood, changing illuminance, displaying a picture or pattern, etc.).ii. sound, which can be adjusted (e.g., increasing or decreasing volume, changing playlist or mood, turning on/off, selecting signal source, etc.).iii. room climate, which can be controlled (e.g., increasing or decreasing temperature, humidity, air fragrance, fan speed, etc.).iv. an alert, which can be generated (e.g., of an email, of an SMS message, etc.).v. monitoring by a camera, which can be panned or tilted.vi. office meeting/presentation settings (e.g., selecting one or more of signal source, streaming application, multimedia to play, audio language, subtitles, chapter, play/pause/stop, rewind/fast forward, etc.).vii. connected/smart video monitor features (e.g., selecting application to be launched, navigating through on-screen menus, etc.).viii. virtual keyboard—navigation on virtual keyboard displayed by other device (e.g., video monitor, set-top box, etc.).ix. control of shades/window coverings/blinds.x. access control (e.g., unlocking/locking doors, opening/shutting doors, authorizing access to selected rooms or zones, etc.).

Furthermore, node301-mcan comprise any combination of and any number of actor functions. As those who are skilled in the art will appreciate, after reading this disclosure, node301-mthat comprises one or more actor functions can be in a variety of forms, such as a luminaire in a lighting system as in the illustrative embodiment, a media player as part of an audio/video system, a heater and/or ceiling fan 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 pump, a robot or robotic arm, a pan/tilt camera, a switch, a motor, a servo mechanism, and so on.

Controller403is a processing device, such as a microcontroller or microprocessor with a controller interface, which are well known in the art. Controller403is configured such that, when operating in conjunction with the other components of node301-m, controller403executes software, processes data, and telecommunicates according to the operations described herein, including those depicted inFIGS. 6 through 11.

Memory404is non-transitory and non-volatile computer storage memory technology that is well known in the art (e.g., flash memory, etc.). Memory404is configured to store operating system411, application software412, and database413. The operating system is a collection of software that manages, in well-known fashion, node301-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 controller403according to the illustrative embodiment enables node301-mto perform the functions disclosed herein.

It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one memory404; or comprise subdivided segments of memory404; or comprise a plurality of memory technologies that collectively store the operating system, application software, and database.

Radio communications module405is configured to enable node301-mto telecommunicate with other devices and systems, including other mesh network nodes, by receiving signals therefrom and/or transmitting signals thereto via receiver421and transmitter422, respectively. Radio communications module405communicates in accordance with Bluetooth mesh networking. In some other embodiments, radio communications module405communicates via one or more other radio telecommunications protocols other than or in addition to Bluetooth mesh networking such as, but not limited to, Z-Wave, ZigBee, Thread, Wi-Fi, straight Bluetooth Low Energy (BLE), classic Bluetooth, and so on.

Receiver421is a component that enables node301-mto telecommunicate with other components and systems by receiving signals that convey information therefrom, specifically messages from other nodes within data network210. It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one receiver421.

Transmitter422is a component that enables node301-mto telecommunicate with other components and systems by transmitting signals that convey information thereto, specifically messages that can be received by other nodes within data network210. For example and without limitation, transmitter422is configured to transmit packets comprising the information described below and inFIGS. 6 through 10. It will be clear to those having ordinary skill in the art how to make and use alternative embodiments that comprise more than one transmitter422.

In accordance with the illustrative embodiment, node301-muses radio communications module405in 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 node301-mcommunicates 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 module405.

In generating and transmitting one or more packets that convey a message within data network210, along with including its own network address as the source address in the message, node301-mis said to originate the message. Node301-mis further capable of forwarding a message that has been originated by a different node. For example, node301-9might originate and transmit one or more messages containing ALS sensor data, node301-6might act upon those messages transmitted by node301-9by adjusting the light output level of its lamp; node301-6might also retransmit the sensor data messages that it receives, so that other nodes (e.g., node301-3, etc.) may act on and/or retransmit the sensor data.

With regard to a specific node's configuration, node301-mcan be configured as a sensor node in that it includes, as a minimum, sensor unit or units401, components configured to transmit the sensor data into data network210, and, possibly, components configured to receive data transmitted by other nodes. Alternatively, node301-mcan be configured as a controller node in that it includes, as a minimum, controller403, actor unit or units402, components configured to receive sensor data transmitted by other nodes, and, possibly, components configured to transmit data into data network210. As those who are skilled in the art will appreciate after reading this specification, node301-mcan be configured according to other combinations of the components depicted inFIG. 4(e.g., to include both sensor node- and controller node-related components, etc.), depending on the functionality required of the node.

FIG. 5depicts the salient features of Light Lightness Controller (LC) architecture500, which defines, at least in part, the controller logic executed by controller403of luminaire node301-m. In accordance with the illustrative embodiment, the luminaire node is a PI (Proportional-Integral) controller as is known in the art. Because controller403uses an integral control term, it is considered to be a sequential controller and, consequently, has internal states. The Light LC is defined in Mesh Model Bluetooth® Specification, Revision v1.0, dated Jul. 13, 2017 (hereinafter, the “Mesh Model”), which is incorporated herein by reference.

Inputs501are input states to the light LC state machine502. At least some of the inputs correlate to data (e.g., physical conditions, etc.) reported by one or more sensors. Lightness Out state503feeds into Squaring Function504, and the results of which feed into Function507, which selects the maximum of its inputs. Lux Level Out state505feeds into PI regulator506, and the results of which feed into Function507. The maximum of the inputs into Function507is selected as Linear Output508, which corresponds to output of lamp of node301-m. All of the aforementioned elements are described in the Mesh Model.

As those who are skilled in the art will appreciate after reading this specification, in some embodiments of the present invention the controller logic executed by controller403of node301-mcan be defined by architecture500with additional extensions or by a different architecture entirely. For example and without limitation, instead of being a PI controller, controller403can have an architecture that defines it as a PID (Proportional-Integral-Derivative) controller or a fuzzy logic controller.

As a PI controller, controller403repeatedly calculates an error value as the difference between a desired setpoint and a measured process variable and applies a correction based on proportional (“P”) and integral (“I”) control terms. In accordance with the illustrative embodiment, the setpoint of each luminaire in a defined group of luminaires is defined in terms of a light lightness (lux) value, which is the same across all luminaires in the group. That is, all of the luminaires in the defined group are configured to maintain a constant lux level, defined by the setpoint using a closed-loop algorithm by processing input values provided by ambient light sensors. Each luminaire repeatedly calculates, for example:i. the integral control term, which is based on the calculated error value based on, at least in part, the previous integral term and the most recently received ALS value (i.e., the measured process variable), andii. the output value with which to control the luminaire's light output level of its lamp.

As described earlier, the communication between nodes comprising sensors and other nodes is not assumed to be perfectly reliable; indeed, a message containing sensor data (e.g., ambient light level, etc.) and transmitted by one luminaire (e.g., node301-1, etc.) might not be received by one or more of other luminaires (e.g., node301-2node301-5, etc.). For that matter, the synchronization messages transmitted by controller nodes as described below are also not assumed to be transmitted in a perfectly reliable manner; indeed, one or more of such messages might also be lost. As a result, the most recently received ALS value at one luminaire within a group might be different than the most recently received ALS value at another luminaire within the group. Also as described earlier, the controllers of the luminaires have internal states. Consequently, one or more output values from the controllers or controller logic of a group of luminaires might be out of synch with one another and need to be coordinated. A method of imposing synchronization across the controllers is described below.

Operations of Node301-m:

FIG. 6depicts salient operations of method600according to the illustrative embodiment, by which each node301-mperforms various functions related to processing synchronization messages received from other nodes within data network210and to transmitting synchronization messages for other nodes to process.

In regard to method600, 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 than node301-m.

Node301-5is featured here for pedagogical purposes as performing the operations associated with method600. As those who are skilled in the art will appreciate after reading this specification, other nodes in a defined group of plural nodes within data network210perform method600concurrently with node301-5and with one another. In particular, the nodes concurrently calculate correction values (e.g., IScorr1in node301-5, IScorr2in node301-6, etc.), calculate corrected values of internal states based on the respective correction values, and transmit synchronization messages containing information related to the corrected internal state values.

In accordance with operation601, node301-5monitors for messages being transmitted that contain sensor data that is, from a node transmitting a source network address that is known to represent an originating source of sensor data. Only if a sensor data message is detected does the control of the task execution proceed to operation603. Otherwise, control of task execution proceeds to operation607.

In accordance with operation603, node301-5receives the message containing sensor data.

In accordance with operation605, node301-5calculates an internal state value based on the message received at operation603. Operation605is described below and with respect toFIG. 7.

In accordance with operation607, node301-5monitors for messages being transmitted that contain synchronization data that is, from a node transmitting a source network address that is known to represent an originating source of synchronization data. Only if a synchronization data message is detected does the control of the task execution proceed to operation609. Otherwise, control of task execution proceeds to operation613.

In accordance with operation609, node301-5receives the message containing synchronization data.

In accordance with operation611, node301-5calculates a corrected value based on the message received at operation609. Operation611is described below and with respect toFIG. 8.

In accordance with operation613, node301-5sets an output value for its actor unit402. Operation613is described below and with respect toFIG. 9.

In accordance with operation615, node301-5determines whether a message containing synchronization data is to be transmitted. Operation615is described below and with respect toFIG. 10.

If a message containing synchronization data is to be transmitted, based on the results of operation615, control of task execution proceeds to operation619. Otherwise, control of task execution proceeds back to operation601.

In accordance with operation619, node301-5transmits a message containing synchronization data. Operation619is described below and with respect toFIG. 11.

As mentioned earlier, other nodes in a defined group of plural nodes within data network210perform method600concurrently with node301-5and with one another. Although the values of at least some of the internal states are synchronized across a group of controller nodes, the timing itself of when each operation is performed is not necessarily synchronized. Thus, the transmitting of the synchronization messages is not synchronized across the plurality of controller nodes, in accordance with the illustrative embodiment. In some alternative embodiments of the present invention, however, the transmitting of at least some of the synchronization messages can be synchronized across at least some of the nodes.

After operation619, control of task execution proceeds back to operation601, in part to repeatedly transmit the synchronization message containing the value of the internal state that corresponds to whichever particular iteration of method600is currently being performed.

Operations of Node301-min Calculating an Internal State Value:

FIG. 7depicts salient sub-operations of operation605, by which the luminaire performs various functions related to calculating one or more internal state values. In accordance with the illustrative embodiment, the internal state is defined by an integral (I) control term of a PI controller. As those who are skilled in the art will appreciate after reading this specification, in some embodiments the internal state can be defined a different control term, in addition to or instead of the integral control term.

In accordance with operation701, controller403calculates the value of the integral control term, based on i) the previous value of the integral control term, ii) the most recent value of a physical condition being monitored by a sensor, in this case an ALS value, and iii) a desired setpoint value of the physical condition. In some embodiments of the present invention, a goal is for the output value (i.e., for controlling the actor unit402) to provide a light level so that i) the illuminance subsequently measured by the reporting ALS is equal to ii) the value configured as the setpoint. It will be clear to those skilled in the art how to calculate the value of the integral control term.

Operations of Node301-min Calculating a Corrected Value to the Internal State:

FIG. 8depicts salient sub-operations of operation611, by which the luminaire performs various functions related to calculating a corrected value to the internal state value calculated in accordance with operation605.

In accordance with operation801, controller403calculates a correction value, with which to correct the internal state value, based on one or more of:i. an internal state value received from another controller node,ii. the internal state value of the present controller node (i.e., node301-5), calculated in accordance with operation605,iii. a desired rate of convergence, andiv. the number of controller nodes in the defined group of nodes to which the present controller node belongs.

Controller403calculates the correction value according to Equation 1:
IScorr=k*(ISrecv—IS)/Ccount,  (Eq. 1)
wherein:IScorris the correction value,k is the desired rate of convergence (e.g., greater than zero, less than 0.5, 0.2, etc.),ISrecvis the value of the internal state that is received from another controller node,IS is the value of the internal state calculated in accordance with operation605, andCcountis the number of controller nodes within the defined group of nodes to which the present controller node belongs and that are active (i.e., transmitting synchronization messages).

Ccountcan be determined by controller node301-5discovering the number of other controller nodes in the group, by monitoring communication in data network210. For example and without limitation, the controller node can monitor for sources addresses of the controller nodes within its predefined group and maintain a record of the source addresses that are detected as being in the transmitted synchronization messages. Based on the number of source addresses that correspond to controller nodes that are in the record, controller node301-5can determine the total number of controller nodes.

In some alternative embodiments of the present invention, Ccountis the number of controller nodes within the defined group of nodes to which the present controller node belongs, without any consideration of whether they are active.

In accordance with operation803, controller403calculates a corrected value of the internal state value based on Equation 2:
ISnew=IS+IScorr,  (Eq. 2)
wherein:ISnewis the corrected value of the internal state,IS is the value of the internal state calculated in accordance with operation605, andIScorris the correction value.

Operations of Node301-min Setting an Output Value:

FIG. 9depicts salient sub-operations of operation613, by which the luminaire performs various functions related to setting an output value to be used by the controlled lamp (i.e., the actor unit).

In accordance with operation901, controller403sets the output value (related to the process variable described above and in regard toFIG. 5) for controlling the actor unit to provide a function at a particular level, wherein the output value is based on ISnewdetermined in accordance with operation611.

[oleo] In some alternative embodiments of the present invention, and to guard against causing an unacceptably large change in the output value (e.g., a sudden change in light level perceived by building residents, etc.), controller403can calculate ISstepaccording to Equation 3:
ISstep=IScorr/m,(Eq. 3)
wherein:ISstepis a step value that is added (instead of IScorr) to IS over m iterative steps in order to obtain ISnewin operation611,IScorris the correction value, andm is the number of iterative steps over which IS is to be corrected by IScorr.
As a result, the output value can be gradually changed, rather than suddenly changed.

Operations of Node301-min Determining when a Synchronization Message is to be Transmitted:

FIG. 10depicts salient sub-operations of operation615, by which the luminaire performs various functions related to determining when the luminaire is to transmit a synchronization message (i.e., for one or more other luminaires to use). Determining when the luminaire is to transmit a synchronization message as described below can reduce the number of messages being transmitted within data network210in general, thereby lessening congestion and load on the data network resulting from synchronization messages.

In accordance with operation1001, controller403determines whether synchronization messages are to be transmitted at the present time. To do so, controller403first defines a deviation amount. In accordance with the illustrative embodiment, this is a maximum absolute deviation from the setpoint defined in operation605, expressed in lux. In some alternative embodiments of the present invention, the deviation is instead defined as a maximum relative deviation from the setpoint defined in operation605, expressed as a percentage. Accordingly, synchronization messages are to be transmitted, in accordance with operation619, only when the reported ALS value (i.e., received from a sensor) is within the defined deviation amount.

Operation1001attempts to promote the transmitting of synchronization messages only when controller403is in a stable state. In the case of controlling the ambient light in a building area, a non-stable state can occur when there is a sudden change in the ambient light, such as when there is sudden cloud cover and the daylight component of a room's ambient light suddenly—and perhaps momentarily—drops, in which case it would be undesirable for the Integral control term to contribute to the output values calculated in the other controller nodes.

In accordance with operation1003, controller403determines the period between transmissions of successive synchronization messages, during the stretches of time when transmissions are permitted to occur as determined in operation1001, based on Ccountas determined in operation611and a network load parameter (i.e., “LOAD”). The network load parameter is defined to represent the combined volume of messages transmitted by all controller nodes per second within the defined group. In some embodiments of the present invention, controller403sets the period according to Equation 4:
Period=Ccount/LOAD,  (Eq. 4)
wherein Ccountand LOAD are as defined above.

In some alternative embodiments of the present invention, the period is based on Ccountbut not on LOAD, while in some other alternative embodiments the period is based on LOAD but not on Ccount.

Controller node301-5can then go on to transmit one or more synchronization messages based on the period determined in accordance with operation1003.

Operations of Node301-min Transmitting a Synchronization Message:

FIG. 11depicts salient sub-operations of operation619, by which the luminaire performs various functions related to transmitting a synchronization message containing information about one or more internal states. Node301-5transmits a synchronization message containing ISnew(i.e., the corrected value of the internal state) as determined in operation611. In some embodiments, node301-5transmits a synchronization message containing IS (i.e., the previous value of the internal state). In some other embodiments, node301-5transmits a synchronization message containing a different variation of an internal state-related value (e.g., IScorr, ISstep, etc.).