Perceptible indicators that wires are attached correctly to controller

Information

  • Patent Grant
  • 12089360
  • Patent Number
    12,089,360
  • Date Filed
    Friday, November 18, 2022
    a year ago
  • Date Issued
    Tuesday, September 10, 2024
    2 months ago
Abstract
Tools and techniques are described to automate line testing when wiring devices (such as equipment and sensors) to controllers. Controllers have access to databases of the devices that are controlled by them, including wiring diagrams and protocols, such that the controller can automatically check that each wire responds correctly to stimulus from the controller. After testing, a reporting device rapidly shows the results of the line testing.
Description
COPYRIGHT AUTHORIZATION

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.


FIELD OF INVENTION

The present disclosure relates to line testing device connections to controllers. More specifically, to automatically determining if a correct device line is connected to a controller.


BACKGROUND

Today's “smart buildings” aren't smart at all—just connected. Expensive cloud add-ons that promise to “un-dumb” your control system can only provide low-value results and reduced reliability, all at the cost of more integration effort. Wiring diagrams take hours to create. Further, if a problem comes up when building a structure that requires that a wired device must be moved, the wiring diagram must be recreated from scratch, which can entail quite a bit of effort. When wiring diagrams are changed, the terminals that the devices are to be wired to may also need to be changed as well, which also may entail completely redoing the wiring diagrams from scratch.


SUMMARY

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description section. This summary does not identify required or essential features of the claimed subject matter. The innovation is defined with claims, and to the extent this Summary conflicts with the claims, the claims should prevail.


In general, some technologies described herein describe a controller system equipped with automated line testing technology. This is used to determine if a device wire attached to a wiring pin on the controller matches the device that the controller expects at that location. The controller comprises a processor, a memory, a database of proposed device-controller locations, a database of device layouts, the device layouts comprising wiring pin layout. To determine if the correct device is attached to a controller, the controller detects that a device wire has been attached to it. The controller determines what device is supposed to be attached at that location, possibly using a database stored in the controller.


The controller has access to information about the wiring of the proposed device, such as what protocol is supposed to be run, what current is expected to be on the wire at certain times, what voltage is supposed to be on the wire at certain times, what protocol is supposed to be used by the device to send and receive messages from the controller, etc. Using this information, the controller determines what information is being sent on the wire and if that information matches up with what it expects. The validity (if the device wire is the correct device or not) is then reported. In some embodiments, if the device is the one that the controller expects, then the validity is true. If the device wire is not the one that the controller has recorded that is supposed to be attached at that location, then the validity is false.


Some innovative embodiments are directed to automatic line testing which allows a user to insert a wire in a module associated with a controller, and a light on the module associated with the wire terminal insertion location indicates that the correct wire has been inserted. Some embodiment may indicate that an incorrect wire has been inserted. In some implementations, the device may need a different sort of wire terminal insertion location, in which case, in some implementations, the controller may be able to direct the module to change wire terminal insertion types to match the type needed by the device.





BRIEF DESCRIPTION OF THE FIGURES


FIG. 1 is a functional block diagram showing an exemplary embodiment of a controller in conjunction which some described embodiments can be implemented.



FIG. 2 is an exemplary flow diagram of illustrating some steps in some implementations of automated point mapping in conjunction with which some described embodiments can be implemented.



FIG. 2A is an exemplary diagram that describes controller-device interaction.



FIG. 2B is an exemplary diagram that further describes controller-device interaction.



FIG. 3 is an exemplary diagram that further describes controller-module interaction.



FIG. 4 is an exemplary flow chart illustrating steps in some methods of automated point mapping generation with which some described embodiments may be implemented.



FIG. 5 describes some more details on some module implementations.



FIG. 6 is an exemplary flow diagram illustrating steps in some methods of automated point mapping with which some described embodiments may be implemented.



FIG. 7 is an exemplary diagram that describes module details with which some described embodiments may be implemented.



FIG. 8 is an exemplary diagram that further describes module details with which some described embodiments may be implemented.



FIG. 9 is a block diagram of an exemplary computing environment in conjunction with which described embodiments can be implemented.



FIG. 10 shows some components that may be included in a computing environment with which described embodiments can be implemented.





DETAILED DESCRIPTION

Disclosed below are representative embodiments of methods, computer-readable media, and systems having particular applicability to automated line testing. Described embodiments implement one or more of the described technologies.


Various alternatives to the implementations described herein are possible. For example, embodiments described with reference to flowchart diagrams can be altered, such as, for example, by changing the ordering of stages shown in the flowcharts, or by repeating or omitting certain stages.


I. Overview

When originally designing and building a structure, the creation process can include designing the structure using a portion of the controller system that will eventually control the various devices (such as HVAC equipment, sensors, safety systems, etc.). In such a system, the specific wiring details and other characteristics about the devices will be input into the controller system during the design process. The wiring diagram for the building can then be created by the controller system. This wiring diagram can comprise the specific wiring diagram for each controller in the building. The specific wiring diagram can include the wiring pin(s) in a controller that a device will be attached to. When a device and its details are input into the original design, the controller already then knows enough about the device to be able to run it properly. Thus, the controller automatically knows what devices were wired to which locations, and what their specifications are, down to their wiring requirements. Thus, when a device is physically being wired to a controller during the building process, the controller can tell if the correct wire of the device is being attached to the correct spot on the controller.


The technical character of embodiments described herein will be apparent to one of ordinary skill in the art, and will also be apparent in several ways to a wide range of attentive readers. Some embodiments address technical activities that are rooted in computing technology, such as more quickly and efficiently constructing electrical, HVAC, etc. systems, etc. Further, because the controller system itself knows the devices that are attached and their protocols, this information is automatically historically archived. Other advantages based on the technical characteristics of the teachings will also be apparent to one of skill from the description provided.



FIG. 1 illustrates aspects of a system architecture which is suitable for use with some automatic line testing embodiments. A system 100 to allow automated point mapping line testing is disclosed. The system 100 includes a controller 105 which comprises computer processor 110, memory 115. and a wiring pin 160 that can be used to automatically line test devices 170 wired to the controller 105. The memory 115 can be any appropriate volatile or non-volatile storage subsystem. For example, the external memory can be volatile memory, e.g., static memory cells, as in FPGAs and some CPLDs; or non-volatile memory, e.g., FLASH memory, as in some CPLDs, or in any other appropriate type of memory cell. The wiring pin 160 comprises a connector between the controller 105 and a device, such that the device can be wired to the controller and the controller can then pass messages to the device and receive messages from the device. Examples of such messages are “turn on,” “turn off,” “turn on low,” “determine how much power is being drawn,” and so on. The wiring pin is any sort of connector that can pass information to a device, from a device, or to and from a device. For example, the wiring pin may be a terminal contact such as a pogo connecter. The wiring pin 160 may be a part of a module that is itself connected to the controller 105.


The memory 115 has stored in it a device layout database 120 which itself comprises a wiring pin layout 125 (e.g., describing which pins are expected to be attached to which devices, and which pin of each device attaches where). The controller, through the device layout database and other associated databases, also understands the nature of each of the devices that are to be attached to it— the protocol—such that it also has stored in memory at least one of a current 135 expected for a pin that is to be attached to a device, a voltage 130, the protocol 140 that the device is running, e.g., a standard set of signals that the controller can expect to receive from the device, and what signals the device expects back. Some devices may have an idiosyncratic signal set, or a single signal 145 that may also be stored. Some controllers or devices also have a database of faults 150 that may be associated with devices or with other controller features, such as network connections. Even though items 125-150 are listed in the device layout database, this is for convenience only; they can be stored in separate databases, etc. Protocol should be understood as a broad term encompassing open protocols such as BACnet, closed protocols, such as SNA, protocols for individual pieces of equipment, such as whether they are analog, the voltage allowances, e.g., 0-10 volts, a single value such as 40 milliamps or 12 volts; the signals that a specific piece of equipment uses to communicate with a controller, such as on/off values, current, voltage, networkable protocol, modulation, frequency, any combination of the above, etc. The controller memory


The device layout database can take many forms, as understood by those of skill in the art. With reference to FIG. 4, an example device layout is shown. In a database, (such as one that may be stored in memory 115) controllers (such as that shown at 410) has connections to modules 415 that are at specific locations within the controller. Each of these modules has connections to devices 420 that are at specific locations within the modules. The devices may have wiring information stored about them in memory associated with the controller; everything may have location within a structure stored with it, also. These devices may be any sort of device that can be wired to a controller, such as HVAC devices, sensors, entertainment systems, security systems, irrigation systems, and so forth. In some implementations, with multiple controllers, a master controller may store all the device layout database information 120; in other implementations the device layout database 120 may be distributed between multiple controllers. In some implementations, a satellite controller 410 can fit modules associated with devices, but the information about the satellite controller devices is stored in memory 115 associated with a controller leader 410.


As with the device layout database, the controllers and modules may also be laid out in a manner such as shown in FIG. 4. Multiple controllers 405, 410 may be connected 425 through wired connections, wireless connections, or a combination of both. In some systems, a master controller (not shown) divides the work in the network between the controllers in the system using distributed system methods. In some systems, the satellite controllers are not given any work except that that concerns their own devices. In some systems, controllers 405 can be connected to one or more modules 415, which are themselves connected to devices 420. The devices 420 then connect to the controllers 405 through the modules 415.


Also stored in memory may be proposed device controller locations 155. Each controller has a certain number of wiring pins 160 that have devices 170 assigned to them. These assignment are accessible to the controller such as in e.g., a device layout database. The controller—device layouts may be input by a user using an I/O device 175 associated with the controller in any manner of ways. For example, when initially designing a building, a user may digitally input the desired devices into a digital version of the building, along with the devices wiring information. In some embodiments, common devices may have wiring and other electrical information already input into a database about them, so a user may just need to specify the manufacturer and specific type of the device. For devices not in the database, users may be able to input the necessary wiring information themselves. Once the digital devices are input into the digital building, a controller, a controller system, or another sort of computer system associated with the controller may then create the controller-device wiring layout, including the wiring locations for the devices within controllers. Users may be able to change these associated wiring layouts as needed. In some implementations, users may input how the devices fit into the controllers themselves. In some implementations, users may input some device locations within the controller system, while letting the controller system design other controller-device layouts. In some implementations, users may directly input the devices that are to be attached to controller wiring pins. Other methods known by those of skill in the art may be used, as well.


A reporting device 180 is also disclosed. In some embodiments, the reporting device reports on whether the wiring pin 160 has been attached to the correct device 170. This reporting device 180 may be any sort of indication that an event has occurred.


With reference to FIG. 2, a flowchart is shown that may be used in some systems and methods. Steps in an embodiment may also be done in a different order than the top-to-bottom order that is laid out in FIG. 2. Steps may be performed in parallel, serially, or in a partially overlapping manner. Steps may also be combined, omitted, renamed, regrouped, or otherwise depart from the illustrated flows, provided that the process performed is operable and conforms to at least one claim.


At 205, the controller detects that a device wire has been coupled to the controller at a controller location. The controller may be a single controller, or a distributed system of controllers, etc. These controller locations may be a wiring pin 160. The controller location may also be a wiring pin associated with a module 415. The controller location may be some other location where a device can be connected, possibly through an intermediary, to a controller. Because the controller (through, e.g., the device layout database) understands which device is connected to its wiring pins, it can determine which device will be expected to be attached to a given wiring pin. These wiring pins may be directly attached to a controller or may be attached to a module which is attached to the controller. (For more on modules, see FIGS. 3, 4, and 5 and the accompanying text.)


At 210, the controller determines which device, and possibly, which wire of which device (for a multi-wire device) should be attached to that wire. This may be done by pairing a device layout in the database with the location on the controller in the database that the unknown device has plugged into. At 215, the validity of the device wire is determined. The device layout database comprises information on how the device works, including wiring information. The controller can check the wire for such information as is necessary to determine if the correct device is at the other end of the wire—if the device is valid. Determining validity of the device may entail checking that the correct current is on the wire, the correct voltage is on the wire, the wire is following the expected protocol, a signal received on the device wire, a signal received on the device wire in response to a signal sent by the controller, etc. Other ways that may be used to determine if a device wire is valid includes using the device wire to turn the device on; checking if the correct voltage is running through the wire when the device is on; checking if the correct current is running though the wire when the device is on; checking if the correct power (current*voltage), etc. a device is detected a device layout is paired to a controller wiring pin. Because the controller (through, e.g., the device layout database) understands which device is connected to its wiring pins, it can determine which device will be expected to be attached to a given wiring pin. These wiring pins may be directly attached to a controller or may be attached to a module which is attached to the controller. (For more on modules, see FIGS. 3, 4, and 5 and the accompanying text.)


In some embodiments, the device layout database comprises a protocol associated with the device 170. This may be a protocol is used by the controller to speak to the device, and and may be the protocol that the device uses to speak to the controller. These may be the same or different protocols. These protocols may be protocols that are well understood, or may be custom protocols that are input into the controller, specific for a given device.


At 220, the validity of the device wire is reported. This report may made in a dedicated reporting device 180, The reporting device may have a signal that indicates that the correct device has been attached to a wiring pin. The reporting device may have a signal that indicates that an incorrect device has been attached to a wiring pin. The reporting device may have a series of lights. The reporting device may be text that is displayed on an I/O device. The reporting device may be an indication that is displayed on an I/O device. The reporting device may be text that is displayed on an I/O device. A certain color light at the reporting device may signify that the correct device has been wired to the wiring pin. A different color may indicate that an incorrect device has been wired to the wiring pin. The reporting device may be a light associated with a wiring pin that lights up green when a correct device 170 is wired to a wiring pin 160. The reporting device may be light associated with a wiring in that lights up red when an incorrect device is wired to the wiring pin 160.


With reference to FIG. 2A, at 205A, in some embodiments, it is determined if connector pins are swapped on a device or among devices associated with a single module or among devices associated with a single controller. Because the controller understands the expected inputs from each of the connectors that are expected to be connected to it, if connector A is exhibiting the protocol of connector B, and vice-versa, the controller can determine that connector A and connector B have been swapped.


At 210A, in some embodiments, the controller turns a device on, using information from an information source, such as a device layout database. Once the device is on, the controller can send information along the device wire allowing the controller to determine characteristics of the device. These characteristics may be device-dependent, but may be used to determine if the correct device is coupled to the controller. At 215A, in some embodiments, the controller determines a device is off, using information from an information source, such as a device layout database. Once the device is determined to be off, the controller can check voltage, current, etc., of the device wire allowing the controller to determine characteristics of the device. These characteristics may be device-dependent, but may be used to determine if the correct device is coupled to the controller.


At 220A, in some embodiments, the controller changes wiring pin type 220A. Sometimes the controller and the type of the device connection (e.g., a wiring pin) do not match. In some embodiments, the wiring pin features are encoded in hardware and software, and/or encoded in software that can make hardware modifications such that the controller can change the pin to match that required by the device by modifying software associated with the pin. In some embodiments, the pin is associated with a module that itself is associated with the controller. In some embodiments, the controller gives software instructions to the module associated with the pin, which in turn, modifies its hardware to change the pin to the appropriate type. Encoding such sorts of hardware features in software is well-understood by those of skill in the art. Basically, a series of hardware features exist, and the software turns the needed ones on, and the ones that are not needed off, such that the wiring pin has the desired set of features. The type of protocol that the pin understands can also be changed in the database files associated the pin. In some embodiments, the controller has modules that the devices are wired to. These modules have circuit boards that can have specific features associated with the pins on the module turned on and off at the direction of the controller.


At 225A, if the device has been determined to be valid, a light associated with the wiring pin is turned on. In some embodiments, this light is green. In some embodiments, the light is a different color.



FIG. 2B shows an example of a device 210B with wiring pins swapped on a controller 205B Device 210B is wired to a controller 205 with multiple wires 215B, 220B. As the controller understands the signals and current/voltage that are expected to be received on the wires, in some embodiments the controller can determine when the wiring has been swapped, that is, as shown in this example, device wire A was expected to be wired to controller wire A but instead has been wired to controller wire pin B, and vice versa. This also works for devices with more wires. In some embodiments, the controller can determine when a device A at wire A has instead been wired to controller location C. In some embodiments, when a device A is expected to be wired to locations A, B, and C, but is wired elsewhere within the controller, the controller will detect this and determine the correct location for the device.


With reference to FIG. 3, in some implementations the controller is operationally able to couple to a module 305, and the module is operationally able to couple to the device connector 310. In some implementations, the module then checks for at least one of voltage, current, signals, or faults 315. In some implementations, the module then passes the learned information (voltage, current, faults, signal) to the controller 320. The module provides a connection between the device connecter and the controller, such that information about the device (e.g., voltage, current, faults, etc.). In instances where the specific details about a connector/wiring pin needs to be changed (such as discussed above with reference to “a partial list of possible wiring pin features”), the hardware that controls pin behavior may reside on the module. The controller, in such instances, will determine which changes need to be made to the pin, and then pass information on to the module about how the module needs to make changes to itself.


An illustrative example of a controller—module hierarchy can be seen with reference to FIG. 4. At the top of the hierarchy is one or more controllers, such as the controller shown in FIG. 1 at 105. The controllers may be able to communicate 425 with other controllers 410 in a controller system using a wired connection, a wireless connection, or a combination of the two. A satellite controller may be a controller that is lacking some functionality. For example, a regular controller 405 may be able to hold 6 modules 415, while a satellite controller 410 may be able to hold 2 modules. Other possible differences may be that the satellite controller has less memory, 115, different computer hardware 110 such as processors, etc. As already mentioned, the controllers may hold a certain number of modules 415. These modules then connect to devices 420. The device 420 can be thought of connecting to the controllers 405, 410 through the module 415. Different controllers may hold different number of modules; different modules may hold different numbers of devices. Some modules may be able to accommodate six wiring terminals.



FIG. 5 describes some more details on some module implementations. In some implementations, the module 505 further comprises hardware that has the operational ability to determine a voltage, a current, or specific fault detection, which information it then passes to the controller. A controller 535 may send messages to a module connector 510. The module connector may then send those messages to its circuit board 515, which may then process the messages and make decisions using its hardware 520 and memory 525. This may result in an altered signal from the signal originally sent by the controller. This altered signal may then be passed to a device connection portion 530 (e.g., a wiring pin 160) which sends the signal to a device 540. This process may work the opposite way as well. A device 540 sends a message through a device connecter (wire connection portion) 530 to the circuit board 515, which may then process the message, changing the signal. The changed signal is then sent through the module connector 510 to the controller 535. In some embodiments, the signal is not changed from the controller 535 to the device 540. In some embodiments, the signal is not changed from the device 540 to the controller. In some embodiments, the circuit board 515 can change the nature of the device connecter 530 that is connecting to device 540 depending on the device 540's requirements. In some implementations, the module, using its circuit board, can determine the voltage, current, and/or fault on the device connector (wiring pin) 530 attached to device 540


A partial list of possible wiring pins 160 features that exist in hardware and can be changed to other features in software are shown below.

    • Ground connection (through a FET)
    • 24 VAC power connection (through a Triac)
    • 0-10V DC analog voltage (via a DAC)
    • Strong 1-wire pullup (via a FET)
    • High-range voltage divider: don't know what will be plugged in, so anticipate highest tolerated (480 volt) if someone plugs in an unknown signal with unknown voltage measure first with high range ability, sees a really tiny signal, can switch to low range, measure small signal, can be safe the whole time.
    • Low range voltage divider
    • 4-20 mA current shunt
    • 24 VAC current shunt
    • DC offset injector that can measure both halves of an DC waveform
    • Electromechanical relays, each relay having 3 connections (normally open, common, normally closed)
    • 120 VAC outputs
    • Chips that measure current
    • A feature that a can switch 250 volt AC up to 10 amps
    • Control for high-current motors.


In FIG. 6 a flowchart is shown that may be used in some methods. Steps in an embodiment may also be done in a different order than the top-to-bottom order that is laid out in FIG. 6. Steps may be performed in parallel, serially, or in a partially overlapping manner. Steps may also be combined, omitted, renamed, regrouped, or otherwise depart from the illustrated flows, provided that the process performed is operable and conforms to at least one claim.


At 605, a controller (e.g., 105) notices that a device has been operably attached to a controller wiring pin. This device may have been attached directly to the controller, or may have been attached to a module that itself is attached to a controller (as seen with reference to e.g., FIGS. 4 and 5 and the accompanying text). At 610, the controller consults a device database to determine which device is supposed to be hooked up to that location. If a device has multiple connectors, the controller may look up each pin separately, may look the device up all at once, etc. At 615, the controller determines a wiring feature of the device. The controller may look this feature up in a device database separately, or may have looked it up initially when it was determined which device was to be hooked up to that location. At 620, the controller determines if the controller wiring pin has the feature(s) that were looked up. It determines its validity, that is, if it had the expected feature (or features) or not. This feature may be any sort of feature that can determine if the correct wire has been hooked up, such as if the correct voltage is on the wire, the correct current, if the correct protocol is being used, or a special set of signals may be sent to the device that causes the device to identify itself to the controller if it is the correct device. Other methods of detection may be used as well. If the feature is (or features are) present, or behave as expected, etc., then the device is valid. If the feature(s) are not present, or don't behave as expected, then the device is invalid.


At 625, whether the device passed or failed the line testing is reported using a reporting feature. This feature may be a signal. In some embodiments this might be light close to to the wiring line that is being tested. It might turn red if the wrong wire is installed, and turn green if the correct wire is installed. In some embodiments the reporting feature may be a signal on a user interface screen associated with the controller, in some embodiments, the feature may be a report; in some embodiments, the feature may be a sound indicator, etc.


As shown with reference to FIG. 7, in some embodiments, a module can change the wiring pin type to match wiring type of the device. In some embodiments, the module has a circuit board 705 with hardware and memory 710. In the described module, there are three wire connectors, wire connector 1 730, wire connector 2 750, and wire connector 3 770. These wire connectors may be of different functions, eg., type 1 through 6. A possible list of possible wiring pin connector types is shown elsewhere. The circuit board has hardware associated with the wire connectors that can be enabled by the module receiving the appropriate signal from the associated controller, allowing the wire connectors to be of one or more of those types. Wire connector A 730 has, associated it in the circuit board hardware for 6 types: Type1 715, Type 2 720, and type3 725. Wire connector B, similarly has the hardware potential to be one of the three types as well—Type1 735, Type2 740, and type3 745. Wire connector C has different types associated with it: Type4 755, Type5 760, and type6 765. The controller send a signal (or a program or another indication) to the module that wire connector A is expected to be type 3. The module may then be able to use its hardware/memory 710 on its circuit board to send a signal 775 telling a Wire Connector A to be of Type 3. The module may be able to connect wire connector type3 725 to Wire connector A, making Wire connector A of type 3. In some embodiments a single wire connector may be multiple wire connector types; for example, wire connector A could be both type2 720 and type3 725.



FIG. 8 shows a module 800 that a may be used in systems and methods disclosed herein. Modules may built with wire connection portions (also known as wiring pins or points), which may be connectors, to connect wires from devices to the controller through the modules. Wire connection portions may be built with lever locks to lock a wire in place that will be connected to the module, and through the module wire connection portion, to a device. These wire connection portions may be connected by connectors, such as pogo pins, to the controller, which will pass information from the wire connected to the device, to the controller. In some embodiments, the wire connection portions comprise are tool-less lever lock connectors that securely connect almost any wire, from 10 to 26 gauge. The module 800 shows an embodiment with tool-less lever lock dry contacts 805, 810 With them, a level/lever 805 can be pulled down. A wire can then be inserted at 810. Pulling the level up will then pinch/secure the wire into the contact.


In this illustrative embodiment, wiring pins 810 have built-in line testing. When an installer pulls a wire and inserts it in the wire connection portion 810, software associated with the controller, the module, or a combination of the module and the controller will test and validate whether the pulled wire corresponds to the right wire in the model, and then indicate the correct correspondence in a visible way. In an illustrative embodiment, the module has LEDs positioned by the wires (or a selection of devices, or a single LED) that will indicate if the proper wire has been inserted, as shown at 815. In an embodiment, the LED flashes green if the proper wire has been pulled, or red if the wire is incorrect.



FIG. 9 shows an exemplary user interface with which devices can be added or modified by a controller or a system of controllers. The exemplary user interface shows the possible controller wiring connections 910 that devices can be hooked up to. In this embodiment, the display 900 shows a controller with eight modules 920 each of which have 6 wiring connections 910 where devices can be wired directly to the controller. Devices 905 can be moved into location on the controller display 900. The individual aspects of the wiring connections 915 are also displayed. In some embodiments, devices can be moved, the specifics of the devices can be modified, including chaining the nature of the wiring connections 915.



FIG. 10 shows some components that may be included in a computing environment used in the systems and methods described herein. The computing environment (which may be a controller or a controller system) may include at least one central processing unit 1005 and memory 1015, 1025. The processing unit may execute computer-executable instructions and may be a real or a virtual processor. There might also be a vector or co/processing unit 1010 that enables fast vector processing. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power. The memory 1015, 1025 may be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or some combination of the two. For example, the memory can be volatile memory, e.g., static memory cells, as in FPGAs and some CPLDs; or non-volatile memory, e.g., FLASH memory, as in some CPLDs, or in any other appropriate type of memory cell. The memory stores software implementing described techniques and tools. The computer system may be distributed, with multiple processors and associated memory in different locations that communicate using wired or wireless network connections. These distributed computing nodes may run simultaneously run the same program using distributed computing techniques.


A computing environment may have additional features. For example, the computing environment may include storage 1020 which may also include memory 1025, one or more input devices 1030, one or more output devices 1035, and one or more other communication devices 1040. These may include touch screens, keyboards, game controllers, touchpads, LED screens, voice-operated input systems, printers, phone connections, FAX machines, etc. An interconnection mechanism such as a bus, controller, or network interconnects the components of the computing environment. Typically, operating system software stored in memory 1015, 1025 provides an operating environment for other software executing in the computing environment, and coordinates activities of the components of the computing environment. The computer system 1000 may connect to other computer systems through network(s) 1050, which may be wired, wireless, or both. Peripherals 1055, such as external hard drives, modems, mice, keyboards, zip drives, scanners, 3-D printers, etc., may be included. Certain components may belong to more than one category.


The computing system 1000, like other suitable systems, also includes one or more computer-readable storage media 1060. Media 1060 may be of different physical types. The media 1060 may be volatile memory, non-volatile memory, fixed in place media, removable media, magnetic media, optical media, solid-state media, and/or of other types of physical durable storage media (as opposed to merely a propagated signal). In particular, a configured medium 1060 such as a portable (i.e., external) hard drive, CD, DVD, memory stick, or other removable non-volatile, non-transient memory medium may become functionally a technological part of the computer system when inserted or otherwise installed, making its content accessible for interaction with and use by central processing unit 1005. The removable configured medium 1060 is an example of a computer-readable storage medium 1060. Some other examples of computer-readable storage media 1060 include built-in RAM, ROM, hard disks, and other memory storage devices which are not readily removable by users 1045. A computer-readable medium should not be considered a signal; neither should a computer-readable memory be considered a signal.


The medium 1060 is configured with instructions 1070 that are executable by a central processing unit 1005; “executable” is used broadly to include, human readable source code, such as Java or C++, compiled code, and/or machine code. Executable code also includes code that a runs using a distributed system, such as a series of controllers and controllers that distribute and run complex problems. The medium 1060 is also configured with data 1065 which is created, modified, referenced, and/or otherwise used for technical effect by execution of the instructions 1070. The instructions 1070 and the data 1065 configure the memory or other storage medium 1060 in which they reside; when that memory or other computer readable storage medium is a functional part of a given computer system, the computer system may be configured by the instructions 1070 and data 1065.


Although an embodiment may be described as being implemented as software instructions executed by one or more processors in a computing device (e.g., general purpose computer, cell phone, or controller), such description is not meant to exhaust all possible embodiments. One of skill will understand that the same or similar functionality can also often be implemented, in whole or in part, directly in hardware logic, to provide the same or similar technical effects. Alternatively, or in addition to software implementation, the technical functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without excluding other implementations, an embodiment may include hardware logic components such as Field-Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application-Specific Standard Products (ASSPs), System-on-a-Chip components (SOCs), Complex Programmable Logic Devices (CPLDs), and similar components. Components of an embodiment may be grouped into interacting functional modules based on their inputs, outputs, and/or their technical effects, for example.

Claims
  • 1. A controller module comprising: a circuit board;a plurality of wiring connections, each wiring connection selectively capable of communicating according to a type 1 protocol or a type 2 protocol;a first processor unit associated with a type 1 protocol;a second processor unit associated with a type 2 protocol;a controller connection capable of connecting to a controller; andthe circuit board executing a process which includes:receiving an indication via the controller connection that a first wiring connection of the plurality of wiring connections should communicate according to the type 1 protocol; andsending a signal that causes the circuit board to connect the first processor unit associated with a type 1 protocol to the first wiring connection.
  • 2. The controller module of claim 1 further comprising sending a signal that causes the circuit board to connect the second processor unit associated with a type 2 protocol to the first wiring connection.
  • 3. The controller module of claim 2, further comprising sending a signal that causes the circuit board to connect the second processor unit associated with the type 2 protocol to the first wiring connection after the sending a signal that causes the circuit board to connect the first processor unit associated with the type 1 protocol to the first wiring connection.
  • 4. The controller module of claim 3, further comprising a device connector that is capable of receiving a signal from a device.
  • 5. The controller module of claim 4, further comprising receiving a signal from the device through the device connector.
  • 6. The controller module of claim 5, further comprising the circuit board determining a voltage of the signal from the device.
  • 7. The controller module of claim 6, further comprising sending the determined voltage of the signal through the controller connection.
  • 8. The controller module of claim 5, further comprising the circuit board determining a current of the signal from the device.
  • 9. The controller module of claim 8, further comprising sending the determined current of the signal through the controller connection.
  • 10. The controller module of claim 5, further comprising the circuit board determining a fault of the signal from the device.
  • 11. A method performed by a controller module for modifying a wiring connection, the method comprising: receiving a first indication via a controller connection that a first wiring connection of a plurality of wiring connections should communicate according to a type 1 protocol; andsending a signal that causes a circuit board to connect a first processor unit associated with a type 1 protocol to the first wiring connection of the plurality of wiring connections.
  • 12. The method of claim 11, further comprising receiving a second indication via the controller connection that the first wiring connection of the plurality of wiring connections should communicate according to a type 2 protocol, and sending a second signal that causes the circuit board to connect a second processor unit associated with a type 2 protocol to the first wiring connection of a plurality of wiring connections.
  • 13. The method of claim 11, further comprising: receiving a signal from a device connector; sending the signal from the device connector through the controller connection; receiving a second signal from the controller connection; and interpreting the second signal to send a reporting signal to a reporting feature.
  • 14. The method of claim 13, further wherein the reporting signal turns on a light.
  • 15. The method of claim 14, wherein the reporting signal indicates when a wire inserted into the device connector is a correct wire.
  • 16. The method of claim 15, wherein the correct wire is a wire that is associated with a predefined device.
  • 17. The method of claim 16, wherein the predefined device is defined on a user interface associated with the controller module.
  • 18. A non-transitory computer-readable storage medium configured with instructions for execution by a processor which upon execution performs a method of modifying a wiring connection, the method comprising: receiving a first indication via a controller connection that a first wiring connection of a plurality of wiring connections should communicate according to a type 1 protocol; andsending a signal that causes a circuit board to connect a first processor unit associated with a type 1 protocol to the first wiring connection of the plurality of wiring connections.
  • 19. The non-transitory computer-readable storage medium of claim 18, the method further comprising sending a signal that causes the circuit board to connect a second processor unit associated with a type 2 protocol to the first wiring connection.
  • 20. The non-transitory computer-readable storage medium of claim 19, the method further comprising sending a signal that causes the circuit board to connect a second processor unit associated with a type 2 protocol to the first wiring connection after the sending a signal that causes the circuit board to connect a second processor unit associated with a type 2 protocol to the first wiring connection.
RELATED APPLICATIONS

The present application hereby incorporates by reference the entirety of, and claims priority to, U.S. patent application Ser. No. 17/151,365, filed 18 Jan. 2021, which claims priority to U.S. Provisional Patent Application Ser. No. 63/070,460 filed 26 Aug. 2020.

US Referenced Citations (249)
Number Name Date Kind
4353653 Zimmerman Oct 1982 A
5208765 Turnbull May 1993 A
5301207 Emerson Apr 1994 A
5530643 Hodorowski Jun 1996 A
5787133 Marchetto Jul 1998 A
6275962 Fuller Aug 2001 B1
6301341 Gizara Oct 2001 B1
6349235 Gibart Feb 2002 B1
6437692 Petite Aug 2002 B1
6606731 Baum Aug 2003 B1
6645066 Gutta Nov 2003 B2
6813777 Weinberger Nov 2004 B1
6891838 Petite May 2005 B1
7102502 Autret Sep 2006 B2
7304855 Milligan Dec 2007 B1
7463237 Yamamoto Dec 2008 B2
7578135 Mattheis Aug 2009 B2
7587250 Coogan Sep 2009 B2
7729882 Seem Jun 2010 B2
7734572 Wiemeyer Jun 2010 B2
7818794 Wittman Oct 2010 B2
7835431 Belge Nov 2010 B2
7865629 Tantos Jan 2011 B1
7917232 McCoy Mar 2011 B2
8024054 Mairs Sep 2011 B2
8099178 Mairs Jan 2012 B2
8503183 Hamilton Aug 2013 B2
8503943 Spanhake Aug 2013 B2
8628239 Merrow Jan 2014 B2
8643476 Pinn Feb 2014 B2
8645895 Bergmann Feb 2014 B2
8749959 Riley Jun 2014 B2
8782619 Wu Jul 2014 B2
8806085 Mathason Aug 2014 B2
8925358 Kasper Jan 2015 B2
9038189 Stevens May 2015 B1
9083548 Holmes Jul 2015 B2
9441847 Grohman Sep 2016 B2
9521724 Berry Dec 2016 B1
9544209 Gielarowski Jan 2017 B2
9602301 Averitt Mar 2017 B2
9664400 Wroblewski May 2017 B2
9678494 Hyde Jun 2017 B2
9740385 Fadell Aug 2017 B2
9791872 Wang Oct 2017 B2
9843229 Leabman Dec 2017 B2
9857238 Malhotra Jan 2018 B2
9860961 Chemel Jan 2018 B2
9952573 Sloo Apr 2018 B2
10018372 Lemire Jul 2018 B2
10042730 Zebian Aug 2018 B2
10094586 Pavlovski Oct 2018 B2
10095210 Caley Oct 2018 B2
10135295 Leabman Nov 2018 B2
10223721 Bhatia Mar 2019 B1
10254641 Mailfert Apr 2019 B2
10333305 Imai et al. Jun 2019 B2
10334758 Ramirez Jun 2019 B1
10372116 Figoli Aug 2019 B2
10512143 Ikehara Dec 2019 B1
10515177 Ruehl Dec 2019 B1
10528016 Noboa Jan 2020 B2
10557889 Montoya Feb 2020 B2
10558183 Piaskowski Feb 2020 B2
10558248 Adrian Feb 2020 B2
10627124 Walser Apr 2020 B2
10640211 Whitten May 2020 B2
10650336 Kopp May 2020 B2
10672293 Labutov Jun 2020 B2
10687435 Adrian Jun 2020 B2
10698391 Figoli Jun 2020 B2
10736228 Kho Aug 2020 B2
10761503 Caley Sep 2020 B2
10775824 Main et al. Sep 2020 B2
10845771 Harvey Nov 2020 B2
10892946 Correia E Costa Jan 2021 B2
10900489 Rendusara Jan 2021 B2
10942871 Cawse Mar 2021 B2
10943444 Boyd Mar 2021 B2
10966068 Tramiel Mar 2021 B2
10966342 Lairsey Mar 2021 B2
10969133 Harvey Apr 2021 B2
11010177 Picard May 2021 B2
11088989 Gao Aug 2021 B2
11229138 Harvey Jan 2022 B1
11294254 Patterson Apr 2022 B2
11323548 Entelis May 2022 B2
11477905 Harvey Oct 2022 B2
11490537 Harvey Nov 2022 B2
11546448 Entelis Jan 2023 B2
11553618 Harvey Jan 2023 B2
11573262 Ranganathan Feb 2023 B2
11596079 Harvey Feb 2023 B2
11706891 Harvey Jul 2023 B2
11733662 Harvey Aug 2023 B2
11743069 Harvey Aug 2023 B2
11856723 Harvey Dec 2023 B2
11861502 Harvey Jan 2024 B2
11871505 Harvey Jan 2024 B2
11915142 Harvey Feb 2024 B2
20040236547 Rappaport Nov 2004 A1
20050040247 Pouchak Feb 2005 A1
20050065742 Rodgers Mar 2005 A1
20050169282 Wittman Aug 2005 A1
20050206609 Yamamoto Sep 2005 A1
20060103545 Tsou May 2006 A1
20070096902 Seeley May 2007 A1
20070162288 Springhart Jul 2007 A1
20080033599 Aminpour Feb 2008 A1
20080222584 Habib Sep 2008 A1
20080270951 Anand Oct 2008 A1
20080277486 Seem Nov 2008 A1
20090189764 Keller Jul 2009 A1
20090217063 Tomita Aug 2009 A1
20100005218 Gower Jan 2010 A1
20100025483 Hoeynck Feb 2010 A1
20100077111 Holmes Mar 2010 A1
20100131933 Kim May 2010 A1
20100162037 Maule Jun 2010 A1
20100237891 Lin Sep 2010 A1
20110016440 Bergmann Jan 2011 A1
20110087988 Ray Apr 2011 A1
20110125930 Tantos May 2011 A1
20120102472 Wu Apr 2012 A1
20120221986 Whitford Aug 2012 A1
20130343207 Cook Dec 2013 A1
20130343388 Stroud Dec 2013 A1
20130343389 Stroud Dec 2013 A1
20130343390 Moriarty Dec 2013 A1
20130346987 Raney Dec 2013 A1
20140047137 Mathason Feb 2014 A1
20140088772 Lelkens Mar 2014 A1
20140101082 Matsuoka Apr 2014 A1
20140143121 Stevens May 2014 A1
20140215446 Araya Jul 2014 A1
20140215450 Salisbury Jul 2014 A1
20140277757 Wang Sep 2014 A1
20140277765 Karimi Sep 2014 A1
20140280960 Paramasivam Sep 2014 A1
20140358291 Wells Dec 2014 A1
20140364985 Tiwari Dec 2014 A1
20150081928 Wintzell Mar 2015 A1
20150198938 Steele Jul 2015 A1
20150234381 Ratilla Aug 2015 A1
20160016454 Yang Jan 2016 A1
20160062753 Champagne Mar 2016 A1
20160073521 Marcade Mar 2016 A1
20160086242 Schafer Mar 2016 A1
20160088438 O'Keeffe Mar 2016 A1
20160092427 Bittmann Mar 2016 A1
20160132308 Muldoon May 2016 A1
20160195856 Spero Jul 2016 A1
20160205784 Kyle Jul 2016 A1
20160209868 Hartman Jul 2016 A1
20160248251 Tinnakornsrisuphap et al. Aug 2016 A1
20160259312 Caley Sep 2016 A1
20160285715 Gielarowski Sep 2016 A1
20160295663 Hyde Oct 2016 A1
20170075323 Shrivastava Mar 2017 A1
20170097259 Brown Apr 2017 A1
20170131611 Brown May 2017 A1
20170149638 Gielarowski May 2017 A1
20170169075 Jiang Jun 2017 A1
20170176034 Hussain Jun 2017 A1
20170285623 Figoli Oct 2017 A1
20170322579 Goparaju Nov 2017 A1
20170365908 Hughes Dec 2017 A1
20180005195 Jacobson Jan 2018 A1
20180075168 Tiwari Mar 2018 A1
20180089172 Needham Mar 2018 A1
20180123272 Mundt May 2018 A1
20180157161 Mailfert Jun 2018 A1
20180202678 Ahuja Jul 2018 A1
20180262573 Przybylski et al. Sep 2018 A1
20180266716 Bender Sep 2018 A1
20180283716 Ribbich Oct 2018 A1
20180307781 Byers Oct 2018 A1
20180347845 Harvey Dec 2018 A1
20180356775 Harvey Dec 2018 A1
20180359111 Harvey Dec 2018 A1
20190049913 Caley Feb 2019 A1
20190087076 Dey Mar 2019 A1
20190138704 Shrivastava May 2019 A1
20190146429 Nayak et al. May 2019 A1
20190156443 Hall May 2019 A1
20190173109 Wang Jun 2019 A1
20190277530 Schwegler Sep 2019 A1
20190278442 Liang Sep 2019 A1
20190294018 Shrivastava Sep 2019 A1
20190317484 Figoli Oct 2019 A1
20200003444 Yuan Jan 2020 A1
20200018506 Ruiz Jan 2020 A1
20200042333 Picard Feb 2020 A1
20200050161 Noboa Feb 2020 A1
20200133257 Cella Apr 2020 A1
20200150508 Patterson May 2020 A1
20200167442 Roecker May 2020 A1
20200187147 Meerbeek Jun 2020 A1
20200221269 Tramiel Jul 2020 A1
20200226223 Reichl Jul 2020 A1
20200228759 Ryan Jul 2020 A1
20200255142 Whitten Aug 2020 A1
20200279482 Berry Sep 2020 A1
20200284883 Ferreira Sep 2020 A1
20200287786 Anderson Sep 2020 A1
20200288558 Anderson Sep 2020 A1
20200336328 Harvey Oct 2020 A1
20200342526 Ablanczy Oct 2020 A1
20200348632 Harvey Nov 2020 A1
20200379730 Graham Dec 2020 A1
20200387041 Shrivastava Dec 2020 A1
20200387129 Chandaria Dec 2020 A1
20210020012 Shakedd Jan 2021 A1
20210073441 Austern Mar 2021 A1
20210081504 McCormick Mar 2021 A1
20210081880 Bivins Mar 2021 A1
20210003830 Harvey Apr 2021 A1
20210157312 Cella May 2021 A1
20210182660 Amirguliyev Jun 2021 A1
20210240502 Picard Aug 2021 A1
20210365013 Figoli Nov 2021 A1
20210366793 Hung Nov 2021 A1
20210381707 Lemire Dec 2021 A1
20210383041 Harvey Dec 2021 A1
20210383042 Harvey Dec 2021 A1
20210383200 Harvey Dec 2021 A1
20210400787 Abbo Dec 2021 A1
20220046114 Entelis Feb 2022 A1
20220066432 Harvey Mar 2022 A1
20220066434 Harvey Mar 2022 A1
20220066722 Harvey Mar 2022 A1
20220066754 Harvey Mar 2022 A1
20220067226 Harvey Mar 2022 A1
20220067227 Harvey Mar 2022 A1
20220067230 Harvey Mar 2022 A1
20220067261 Harvey Mar 2022 A1
20220069863 Harvey Mar 2022 A1
20220070293 Harvey Mar 2022 A1
20220138684 Harvey May 2022 A1
20220206061 Ranganathan Jun 2022 A1
20220224777 Entelis Jul 2022 A1
20220312618 Harvey Sep 2022 A1
20220350297 Harvey Nov 2022 A1
20230006859 Harvey Jan 2023 A1
20230120713 Harvey Apr 2023 A1
20230180420 Harvey Jun 2023 A1
20230350355 Harvey Nov 2023 A1
20230353410 Harvey Nov 2023 A1
20240053254 Easterling Feb 2024 A1
Foreign Referenced Citations (7)
Number Date Country
103926912 Jul 2014 CN
206002869 Mar 2017 CN
206489622 Sep 2017 CN
6301341 Mar 2018 JP
2008016500 Mar 2008 WO
2012019328 Feb 2012 WO
2014025511 Feb 2014 WO
Non-Patent Literature Citations (21)
Entry
BigLadder Software Full Ref, Occupant Thermal Comfort: Engineering Reference, 2014, The Board of Trustees of the University of Illinois and the Regents of the University of California through the Ernest Orlando Lawrence Berkeley National Laboratory (Year: 2014).
De Meester et al., SERIF:A Semantic Exercise Interchange FormatConference: Proceedings of the 1st International Workshop on LINKed EDucation, Oct. 2015.
Gou, Wendy et al., “Wireless mesh networks in intelligent building automation control: a survey.” International Journal of Intelligent Control and Systems, vol. 16, No. 1, Mar. 2011, 28-36.
Gou, Wenqi, and Mengchu Zhou, “An emerging technology for improved building automation control,” 2009, IEEE International Conference on Systems, Man and Cybernetics, IEEE, 2009, pp. 337-342.
Gungor et al., “Industrial Wireless Sensor Networks: Challenges, Design Principles, and Technical Approaches,” IEEE Transactions on Industrial Electronics, vol. 56, No. 10, Oct. 2009.
Hagentoft et al. Full Reference, Assessment Method of Numerical Prediction Models for Combined Heat, Air and Moisture Transfer in Building Components: Benchmarks for One-dimensional Cases, Journal of Thermal Env. & Bldg. Sci., vol. 27, No. 4, Apr. 2004.
Kalagnanam et al., “A System For Automated Mapping of Bill-of_Materials Part Numbers”, KDD '04: Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining, Aug. 2004, pp. 805-810.
Kastner, Wolfgang, et al., “Building Automation System Integration into the Internet of Things, The IoT6 Approach, Its Realization and Validation,” Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA), IEEE, 2014, pp. 1-9 (Year:2014).
Mouser Electronics News Release, Aug. 16, 2018.
Ouf et al., Effectiveness of using WiFi technologies to detect and predict building occupancy, Sust. Buildi. 2, 7 (2017).
Radiomaze, Inc., “WiFi signals enable motion recognition throughout the entire home,” Dec. 4, 2017.
Sensorswarm, 2018.
Serale G., et al., Model Predictive Control (MPC) for Enhancing Building and HVAC System Energy Efficiency: Problem Formulation, Applications and Opportunities, Energies, Nov. 2018, 631; doi: 10.3390, Mar. 12, 2018.
Shailendra, Eshan et al., “Analyzing home automation and networking technologies,” IEEE Potentials 37.1 (2018): pp. 27-33, (Year: 2018).
Siano, P, “Demand response and smart grids—A survey”, Renewable and Sustainable Energy Reviews 30 (2014) 461-478.
U.S. Appl. No. 15/995,019 (7340.2.2) Office Action mailed Jul. 26, 2019.
U.S. Appl. No. 15/995,019 (7340.2.2) Office Action mailed Oct. 8, 2020.
U.S. Appl. No. 15/995,019 (7340.2.2) Office Action mailed Apr. 15, 2020.
Amin, Massoud, “Toward self-healing energy infrastructure systems,” IEEE Computer Applications in Power 14.1 (2002): pp. 20-28.
Wang et al., “The Hidden Convex Optimization Landscape of Two-Layer ReLU Neural Networks: an Exact Characterization of the Optimal Solutions”, arXiv:2006.05900v3, Jul. 6, 2021.
Yegulap, Serdar, “What is LLVM? The power behind Swift, Rust, Clang, and more,” Infoworld, Mar. 11, 2020.
Related Publications (1)
Number Date Country
20230120713 A1 Apr 2023 US
Provisional Applications (1)
Number Date Country
63070460 Aug 2020 US
Continuations (1)
Number Date Country
Parent 17151365 Jan 2021 US
Child 17990350 US