fig1 is a functional block diagram of one embodiment of a system 10 in accordance with the present invention . a controller 12 is shown to include a microprocessor 14 and memory 16 for carrying out the steps of the program residing in the memory . in one embodiment , the memory includes embedded software to provide software control to the various interfaces to the controller . a real time clock 18 is provided . the rtc 18 is a key factor in keeping all data gathered valid and useful within the record format . one task of the rtc includes providing date and time stamp information as will be appreciated from the description herein . an rs - 232 port 20 is included and represents various interfaces . for example , the port may provide the ability to interface with a remote personal computer , personal digital assistant ( pda ) or similar device , to provide capability to upload or download data . in addition , the port may accommodate a bluetooth ® interface . the bluetooth ® interface may provide for inter - device communication . still further , the port may provide the ability to interface with temperature sensors . the system further includes a radio transceiver 22 coupled to the microprocessor , input relays 24 coupled between a calling device 26 ( e . g ., a thermostat , temperature controller , or the like ) and the microprocessor , the input relays including current sensing . closure sensors 28 are located at various locations including door and windows . the closure sensors may be a wireless type and coupled to the receivers 30 . the receivers are in turn coupled to an input interface 32 . output relays are coupled to the microprocessor and various loads 36 . the loads may include an hvac compressor , heat pump , water valve controller , water valve solenoids , water valve actuators , gas valves , steam valves , and other loads traditionally associated with an hvac system . the output relays may also include current sensing of the various loads , whereby the microprocessor may monitor the current of the respective load . pluralities of temperature sensors 38 are located at various locations throughout the system and building . for example , the temperature locations include an air register , an air return input at a furnace , an air output at the furnace , a plenum of the furnace , a compressor , cold or hot liquid transfer pipe , and a condenser and air handler fans . the temperature sensors are coupled to the microprocessor via a sensor interface 40 . while discrete sensor lines are shown coupled to the sensor interface , it will be appreciated that several ( for example , six ) temperature sensors may be provided via a 1 - wire serial bus . the controller &# 39 ; s function is to sense transitions and changes at its inputs and outputs and both store and transmit that information to other devices and to pc applications . depending on how it is configured / programmed during initial setup , it will gather , organize , store and distribute relational data surrounding the occurrences of said changes . the controller provides visual feedback through an external indicator led and through a bluetooth ® wireless link to a pc application . record information that is a compilation of events is time - date stamped and depending on the hardware configuration , stored for an extended period of time in on - board memory . for example , the record information may be stored for several years , and in one embodiment is stored for up to 10 years . each controller module has the ability to function independently or in coordination with other bt devices as part of a network controlled outside of the control of the embedded software . a block diagram of another embodiment of the controller is shown in fig2 . the controller includes flash memory 50 which may be reprogrammed via a built - in boot loader allow fast transfer of program via the bluetooth ® interface . the controller includes various interfaces , such as on - board push button switch 52 that functions as a master reset and resets all event memory . an event may be defined as a condition with associated time / date stamp and which is stored in memory . a first on - board led 54 provides an indication that the controller is healthy , with flashes tied to program operation . it may also flash to indicate a complete master clear . a second on - board led may be used to indicate communication with a remote device . a first remote led 56 provides a power on indication . other off - board leds may display input and output operational conditions or display timer and output / fault conditions . the software may be programmed to drive various input and output i / o to interact with certain items , including the serial rs - 232 interface , on - board leds , input signals ( in - 1 and in - 2 ), output relays ( out - 1 and out - 2 ), serial 1 wire temperature sensor network , bluetooth ® dauthter - board serial interface and board mounted micro push button switch 52 . embedded software will conduct and interpret an at - type command set over and through the kc wirefree bluetooth ® daughter board to interface to a third party software application on the other side of the bluetooth ® serial link as part of normal operation . the embedded software will also communicate and interact with a third party configuration and test application over its rs - 232 port connection during configuration or normal operation . the controller has four basic modes of operation . an operational mode is the condition that the controller will be in the vast amount of its lifetime . during this mode , the controller will perform several different defined functions as it gathers , stores and manipulates the conditional data it is collecting as it occurs as part of an event . in a flash programming mode , the program on the controller is replaceable over the bt connection that is enacted from a sw application located on a pc , communicating over the bt connection . an on - board boot - loader program will facilitate the process . in a dormancy mode , in the event that system power is lost , normal operation will cease except that if an rtc is provided , the duration of the outage will be counted and stored as an event . in the configuration mode , all of the variables and fixed “ switches ” that are used to control the controller features are allowed to be retrieved and changed through serial bus communication . setting of the rtc , clearing memory , serialization and naming , for instance , can all be accomplished using a configuration utility software running as a pc application . the following is a list of certain system features in one embodiment of the present invention . in particular , the controller embedded program monitors , controls or coordinates the following : any time there is a change in state ( from that logically configured ) an event is created , time / date stamped and stored in memory . inputs can be logically configured . functionally tied together or operated separately . respond in & lt ; 500 ms ignore transitions repeating in less than 750 ms . can be turned on or off independently . have their action delayed by resettable timers . outputs can be logically configured for transition state . measured for current flowing regardless of contact position . tested continuously looking for a state change in current flow . are able to be turned off with respect to reaction from inputs . 3 . temperature sensors — reads 6 temperature sensors on a 1 - wire serial bus . each sensor has its own unique address . unused sensors are id &# 39 ; d as 00 sensors are monitored constantly during test and operation modes . temperatures are captured at the default rate of every hour as an event . data are captured as a special “ event ” if set limits are exceeded . sensors are fault tested and reported by exception . sensor replacement requires sending a “ replace ” code and reconfiguration are read in a round - robin format . are stored in degrees c . measure and store the relative current levels in the output path of both output relay commons . compares measurement to set values . gets stored as part of a record controls relay action based on set criteria . measure and store relative voltage levels as compared to nominal supply voltage level . differentials between temperature sensors . affected by input delay timers remain in the state assigned continuously through the invoking event . on a power failure , returns to the last event which caused it after running through the dob timer , if set after the por . can occur both periodically and randomly or when specifically requested by a query command . will include passing packet data to the bt module . includes invoking and accepting at - style command set for communication to the bt . will pass unique serial numbers and id numbers installed through configuration . will facilitate and allow data reads , configuration changes , and complete flash reprogramming of its embedded program sw when invoked using fault tolerant methods . will include a darm ok handshaking with the bt . 6 . rs 232 communication — ascii based , used for initial configuration and testing . 7 . re - programmability — done via on - board connector or over the bt serial 8 . recording events — types of events that get recorded : state change fault timer exceeded from an change of state dom exceeded dom exceeded dom reset dob reset fault timer exceeded current flow change passed current threshold exceeded current differential 9 . delay timers — affect when the action of an input change occurs causes a delay of any input action until the timer expires can be configured as resettable or non - resettable . is tied to a minimum output state change if non - resettable and inputs reset . causes a delay of any output change until the timer expires is started after the dom timer expires . is retriggerable immediately if the input changes state after expiration can be configured as resettable or non - resettable . keep a running total of specific events are read out as parameters can be individually reset in - 1 and in - 2 can be configured as logical inputs assigned to one or both outputs follow the four boolean expressions . the electronics portion utilizes input information from both internal and external sensors and processes the data based on a specific set of deterministic logic and preconfigured setup criteria . inputs can be set to have a logical and combinatorial effect on the outputs , can be turned on or off and have a delayed response to openings or closings of inputs as such , for ease of timed egress without activation of energy savings if so set . temperature sensors monitor critical points in an hvac system as shown in the diagram : compressor inlet and outlets , fan motors , plenum and returns , cold and hot water pipes , duct outlet and inlets and ambient room temperatures at varying locations allow for sampling and reporting of multiple criteria used to assess efficiency and determine energy waste levels . output - sensors in series with control currents from any type of calling device , measure the current - flow of the control current ( s ), and at the same time , control continuity of said current paths acting to intervene in the status quo of a typical operational sequence . if the combination of external sensors at the inputs , along with set threshold levels typical for ill - performing hvac components , as previously listed , the invention will gather all pertinent data , report it and act to break the same current path of the calling device thus controlling its current flow and effectively stopping the device ( s ) being driven upstream preventing further wasting of consumed energy . a software program controls the overall invention operation . by referencing limits and set points and stored time for delaying or actuation length , and using combinational logic or other trip and restore point data that is both stored on board for up to 10 yrs of events , and / or sent via an on - board radio transceiver to other like wireless devices , the invention can work remotely as an energy saving device and can also be networked therefore , allowing a plurality of devices running programs to gather and organize event data forming a subnet , as part of a larger energy control system . fig3 is a process flow chart of one embodiment of the present invention . the following is a description for each of the blocks shown . temp , event , count , current flow , inputs — coming in from the various input connections or sensors built - in or from those otherwise tied to the invention &# 39 ; s hardware inputs , this resulting data becomes the latest “ sampling ” information and is held as a new event - record . the data are stored chronologically in long - term memory and time - date - stamped . order , ranking and sequence logic — as the previous blocks inputs change state , they are filtered for specific characteristics such as passing a threshold level , meeting a combinational - logic condition occurring in a particular sequence or exceeding some time duration previously established through settings made during initial configuration . based on the configuration choices , values or options turned on or off sets up the criteria for which specific input ( s ) will be used to trigger an output event . further , a weighting factor may be assigned to any selected inputs that will further influence the amount of change necessary to promulgate an output change . so based on such factors as repetition rate , duration or interval of said input &# 39 ; s change , an outputs activity such as start - time , on duration , tie to another output or even ignoring action can be tailored . ranking of which inputs will be the primary influence and which the tertiary , is orchestrated through a dynamic status ranking calculation using input activity placed through a programmable highpass fast averaging filter . probability threshold decision — depending on how often an input changes , for how long and at what interval , a probability decision can be extracted using bayesian inference because fresh inputs are compared to past recorded actions and used to predict the direction of trend . this factor of what inputs are probably most consistently causing the output action can be used by applying a selected iteration weighting to the control algorithm . so if it determined that temperature being set to a value is probably contributing to an output action , a change to the weighting factor would lessen the call for an output action proportional to a desired level of reduction . if it is determined that the probability of one certain inputs has changed , then the control algorithm will automatically be modified to affect that new input to be the one that is used to be tied to an outputs reduction the output . iteration weighting — is the control value that is set in the configuration to influence a level of output activity . it provides the amount in % that will influence the control algorithm for an output to be forced to work to . a damping factor is also involved for the for the sake of limiting runaway or oscillatory situations . so if a weighing factor of 2 % is used , the input that is probably causing the output to be active will have its influence reduced so that the output is active 2 % less than before . in the course of meeting set points and checking for failures , the invention utilizes the predictive capabilities of the system to “ find ” likely places in the patterns of normal operation to “ force ” a level of energy savings by making slight adjustments to the normal operational characteristics of it . in other words , if a % of savings is desired , that % can be put back into the configuration of the invention and the method will find places to implement those changes . an outside software package is used to monitor overall trending then takes the data on system run times , durations , temperatures , and intervals , and evaluates and further adjusts the “ gain ” factors to effect energy savings through the same types of algorithmic manipulation techniques . a closed loop system is then created due to putting those tweaks back into the invention &# 39 ; s control algorithm to continually refine the course of action to meet the desired result . control algorithm — gain - control for how the outputs will be influenced by the combination of weighing , preset values , thresholds , combinatorial and logical states , caused by the input actions that have occurred . so input 1 switch goes active , and exceeds the delay on make timers but is logically tied to input 2 and it is off , no output action will occur . coordination control — several like inventions can be in a network . one of the several can be a master and the rest are slaves from the standpoint of being controlled . the one that is called a master coordinates with each of the identified slaves through the coordination control block in the master &# 39 ; s program . so if an action occurs at a slave that is sent to the master on request from the master , the master can take action . likewise the master can tell a slave to take action . output control — uses configuration settings with static addresses to the other networked devices so that they can be identified as being part of the network and also to reject other devices that are not identified as part of the network . allows predicted actions to be conveyed to the other devices on the network . so if other networked like inventions were to form a web of devices , actions could be passed to the other inventions to produce a sequence of actions caused by the predictions of one through its use of bayesian predictive methodology . broad dispatch — determines the level of devices in the network and whether any are masters . takes in all security codes , serial numbers and security keys and validates them with an internal list set up during configuration . control path manipulation — takes the programmed configuration settings , conditional and probability decisions caused by settings and bayesian logic outcome and drives the user interface status indicators . so for instance , if an input occurs and exceeds the amount of time that input should be active , cpm directs the leds to perform a visual indication for the user .