Home Electricity Evolution
Electrical systems for the home have come a long way from the days of old-fashioned fuse boxes. Today’s modern circuit breaker panels are designed to keep you safe. In this article, Jeff tracks the evolution of home circuit management, examining full-featured, intelligent panelboard solutions like Powerlink, and embarks on a project that puts Powerlink through its paces and leverages MQTT for remote control.
If you hear someone say “controlled breaking” in this age of autonomous vehicles, you might assume it a discussion about vehicle braking was about to commence. Instead, in this article we’re going to look at the kind of breaking implemented in your fuse box. For some, I expect the name “fuse box” to bring up some blank stares. In my younger days, whenever I ventured into the cellar, which had a dirt floor and the smell of kerosene, I couldn’t help but notice the electrical wiring looked like Frankenstein’s lab, consisting of knob and tube wiring. What? Never heard of kerosene, Frankenstein or knob and tube wiring? Hmm, I guess a lot has changed in 50 years.
Figure 1 shows knob and tube (K&T) insulators that were used to hold wires, providing power from your fuse box to your room outlets. Note that each conductor has its own K&T wiring path. This is unlike the multi-conductor cable, or “14-2 with ground” that is used today. It consists of two insulated conductors plus a bare, copper grounding wire (14-gauge). The fuse box shown in Figure 2 used Edison-style, screw-in fuses and cartridge-style main fuses under the mains cover. Fuses are single-use devices, so you had to have plenty of spare fuses on hand.
Today, our homes use breakers in the power/service panel, which are fuses that can be reset after tripping (Figure 3). No longer are we exposed to the “live” wiring inside the breaker panel. Resetting a breaker is a simple OFF-ON recycling of the tripped breaker’s plastic lever. Circuit breakers also give us a convenient and safe way to disconnect branch circuitry, allowing us to replace outlets, switches, fans, lights and other direct-wired devices without the circuit being “live.” The front panel protects us from the killing potentials that await inside. To be safe, homeowners should never remove this cover.
The standard circuit breaker has two basic modes of operation: short circuit and overload protection. Although a short circuit is a kind of overload, these are handled separately. Refer to Figure 4 for the guts of a typical circuit breaker. The plastic handle (1) allows the user to turn ON/OFF the switch via the latching actuator mechanism (2), which closes the contacts (3) between the two external wire connectors (4). The bi-metallic strip (5) deforms due to self heating as current passes through it. The movement of this strip will unlatch the actuator mechanism (2) when the current exceeds the rating of the breaker. The trip point is factory adjusted using the adjustment screw (6). The closed circuit current path between terminals (4) includes the coil (7). This is actually a solenoid. Normal circuit current is not sufficient to enable the solenoid. It requires high (short-circuit) current to enable the solenoid and trip or unlatch the actuator mechanism (2). When the breaker trips (opens), interrupting high currents may produce an arc on the switch contacts. The arc divider/extinguisher (8) is several parallel plates, which create many smaller gaps across the contacts, helping to dissipate any arcing.
We’ve all experienced power outages and brownouts. These might be due to infrastructure damage—for example, when a branch drops on a power line, a pole is taken down due to an auto accident or during extreme demand when the generation can’t keep up with the demand. Many homes have installed backup generators, which supply power in an emergency situation. Safety systems are in place to prevent a generator from placing power back on the grid, which is a safety hazard to line men working on “dead” lines. This safety device is known as a “transfer switch.” It allows you to connect either the utility’s power or your generator’s power to your home, but not both at the same time. This transfer switch can be manual or automatic.
A generator is usually sized to produce only a fraction of the maximum amperage your home might require. In emergency cases, you are most interested in operating only those items of importance, such as your heating system (in winter), water pump, stove and fridge. The demand on these might be sporadic, and as long as you don’t ask for more than your generator can handle at any given time, you can get away with a lot less generating capacity. The larger the generator, the more fuel is required to keep it running, even if there is no power demand on it.
You might not be able to run two high-demand items at the same time. Therefore, you must load share or load shed. Load sharing requires turning breakers (power to individual circuits/ devices) ON and OFF, such that only one is ON at a time. Load shedding is turning OFF those items of lesser importance, to allow for more important loads. Load shedding is based on a hierarchy of load importance. That is, you designate each circuit with a priority level. All circuits begin ON. Should the load to the generator be more than its capacity, then circuits are turned OFF starting with the lowest priority and continuing up the priority chain until enough loads have been shed to bring the demand down to that which the generator can handle.
This all requires constant monitoring of the generator to prevent overloading. In general, these systems are pretty dumb. There is no feedback of whether or not a circuit is looking for power, unless the breaker is turned ON and the load increases. The smart home of the future could provide this. Let’s start by looking at the breaker used in these systems to remotely turn a breaker ON and OFF.
Schneider Electric is a global specialist in energy management and automation. They develop solutions to manage and process energy in ways that are safe, reliable, efficient and sustainable. Powerlink is an energy-management powerhouse that remotely monitors and controls circuits, panels and lighting from one centralized location. Part of that system is the ON/OFF control of breakers. They have taken the standard breaker and modified it to be controlled remotely without introducing any safety issues. The standard 20 A circuit breaker (QO20, $12) becomes a QO120PLILC ($46).
The Powerlink breaker has a 24 VDC motor inside that closes and opens the breaker. In addition, there are limit switches wired to disable the motor once it has reached its destination. The signal on the control line is either a +24 V (to close the breaker) or ground to open the breaker. Motor current is only required while switching. Specifications call out a supply of providing 24 VDC at 2 A for 10 ms. Figure 5 is a diagram of this breaker.
The first thing I wanted to do was to look at the breaker in action. I purchased a switching supply that is capable of over 2 A. I designed a little circuit to handle the current and provide me set and reset push buttons (Figure 6). Note that in this circuit I used a latching relay with dual coils, one to set the relay, and one to reset the relay. The relay provides some memory for the breaker’s state, should the system go down. The push buttons give local control, the LEDs provide optical feedback, and additional connections allow this board to be interfaced for external control and status.
Without the breaker attached, I can change the state of the relay with the push-buttons. The LEDs show power and relay state, so I added a 0.1 Ω resistor between the power supply and the circuit and hooked up the scope to measure the current through the resistor. With the breaker attached, you can see in Figure 7 the current pulse required to change the state of the breaker. You’ll note from the schematic that the set and reset inputs need only to be pulled high for a brief period for the latching relay to do its thing. Because this relay doesn’t need power to remember its last state, a power cycle will not cause the relay to change state.
Now, I’m going to borrow from a previous project. My From the Bench (FTB) column in Circuit Cellar 344 (March 2019), entitled “Non-Invasive Current Sensor” was on current measurement, and clamp-on current sensors were used to measure the amps flowing through a conductor. The sensors are available in different current ranges, but are all pretty much the same—except for a burden resistor that sets the range equal to a full-scale output of ±1 V. After all, we’re dealing with AC current measurement here.
Because the sensor output is positive and negative, and most analog-to-digital converters (ADCs) are ground based and looking for only positive signals, I used a bias circuit to create a positive offset voltage equal to 1.2 V, upon which the sensor’s output would be applied. The resultant signal would be 1.2 V when the sensor produced no current. The probe’s output current goes through the internal burden (load) resistor. This voltage across this burden resistor is an AC voltage, and will thus be positive and negative (referenced to one end).
When referenced to the bias voltage, it adds to and subtracts from the bias voltage. Since the voltage should never exceed ±1 V full scale (unless it is measuring a current higher than its rating), it will subtract or add (up to 1 V) to the 1.2 V bias. This produces a combined voltage of 0.2 V to 2.2 V when the probe is measuring full-scale current (±1 V). You can see that since we are dealing with a 60 Hz signal here, we must take many readings (conversions) and save the highest and lowest conversions to get a p-p (peak-to-peak) value of the sensor’s voltage, which translates into a p-p current flowing through the conductor.
To me, monitoring energy is an essential part of being able to control it. The load sharing/shedding discussion above is missing so much. While it might be an effective means of keeping the consumption under the limit of the generation system, it’s based on detecting a brownout condition of the generator, which isn’t a good thing to start with. I’ll get back to this, but for now let’s see how we could make use of all this.
I didn’t intend for this project to include MQTT (Message Queuing Telemetry Transport), but after thinking about it, this makes the perfect platform for interfacing stuff to a browser-based user panel. What I have is digital I/O (the breaker) and analog input (current through the breaker). I already have OpenHAB 2 running on a Raspberry Pi. It has an MQTT server and Node-RED, but thus far I’m only using MQTT and Node-RED, which by itself, makes this all available from anywhere on the Internet.
This part of the project will use an Espressif Systems ESP-32 for its processing power and Wi-Fi. Because it’s programmable from the Arduino IDE, the application is easy to program and can be downloaded over the air. The ESP-32 has enough pins to handle four breakers. Although it would make sense to put all the parts I’ve discussed on one PCB, I’ll prototype this using connectors to make use of the two circuits discussed earlier.
Refer to Figure 8 for the block diagram of this system. While 24 VDC is required for the breakers, the rest of the system runs on 3.3 V. Using a linear regulator to get 3.3 V would drop around 20 V across the regulator, and even a current draw of only 100 mA would produce 2 W of wasted heat! So, I’m using a small switching regulator—CUI’s VXO7803-500—that comes in the familiar 3-pin Input-Ground-Output (I-G-O) format. The ESP-32 has 16 times the flash memory of Espressif’s ESP8266, tons of I/O and built-in Bluetooth and Wi-Fi. I’m going to skip over the MQTT explanation—for that, you can go to issues 351 and 352 of Circuit Cellar (October and November 2019). Instead, I’ll get right into some main loop code Figure 9.
Initially, I intended to use an Internet connection to use NTPClient to get the time of day from one of the Network Time Protocol pools. Since this is already handled by my Pi’s MQTT server—and I have implemented publishing this information every minute—all projects can subscribe to the “TimeDate” topic and get that indirectly. I use the built-in micros() timer to count seconds, resetting to zero in sync with a “TimeDate” reception (or upon reaching 59 seconds, if the reception is missed). The sampling routine executes once every second. This will sample four analog channels as fast as possible for 500 ms (30 AC cycles). Note: Loop counts show that I can get a few thousand samples in that time frame.
Then, there is still 500 ms to check the breaker status, update the time, select Mode 1 to show the breaker status on the LCD and toggle the on-board blue LED. Button inputs are handled through interrupts and only flag a button push. The buttons’ flags are tested at the end of the main loop. However, presently there are no functions for these buttons.
The status of each breaker and its measured current are published every second. And, since this application subscribes to the topics “Channel 1:4,” requests to turn the breakers ON and OFF can come from the MQTT server. This means we have local control from the relay push buttons, and external control from any other source through the MQTT server.
Should you want to make a programming change to the ESP-32 from the Arduino IDE, choosing the circuit’s IP address in the IDE’s “PORT” selection will activate an over-the-air (OTA) request. When this is received by the ESP-32, it will accept the request and receive the new application. OTA progress is displayed on the LCD, and if it receives everything correctly, the memory pointer is changed and the new application takes over as the ESP-32 is reset. Should an error occur during this process, then the original application continues to run and you may retry from the IDE.
Node-RED allows the interfacing of different hardware in creative ways. The programming is done through a browser. This means you can easily connect pieces of hardware together to exchange information. In this case, the project circuitry hardware is connected with a browser window for real-time user I/O. Please refer again to my articles in Circuit Cellar 351 and 352 (October and November 2019) for a more complete discussion on MQTT and Node-RED.
For this project, we need to display four analog values and four breaker status values. In addition to these, I want the user to be able to control the breakers via the browser. In Node-RED, we create a “flow” from one object to another using various function blocks. The MQTT input function allows us to capture any “Topic” sent to the MQTT server. In this project we are interested in eight items—Analog 1:4 and Digital 1:4. These topics consist of the board-specific ID, esp32_ + 6-character MAC address, with a “/” + Analog # or Digital # appended. This allows Node-RED’s MQTT function to grab any topic beginning with esp32_DDA795/ for use in the “flow.” A second function switch takes in the topics and divides them into eight outputs by using the topic’s endings—
Analog 1, Analog 2, Analog 3, Analog 4, Digital 1
and so on.
Two different functions are used to display the data. The analog values are straight forward—using the “gauge” function a min value (0) and max value (100, the sensor’s full-scale value) are entered as the extents of the gauge. The gauge’s pointer will be positioned according to the value for each channel.
For the digital values, the breaker’s status is shown as LEDs—green when the breaker is ON and red when the breaker is OFF. To allow these breakers to be controlled from the browser, we have to give the user some control. I chose to use push buttons, giving a similar control feel as the hardware buttons used in the project. If you remember, these were used as set (ON) and reset (OFF) inputs to the latching relay. This means that we will need eight buttons—and ON and OFF for each of the four breakers. Each of these button pairs publishes to a topic with either a “0” (OFF button) or “1” (ON button) as the topic’s data. However, we need to feed all these topics to the function MQTT output to make the connection. Anyone subscribing to these topics will be notified when that topic is published, due to a button push. An “ON button” will have no effect if the breaker is presently ON and vice-versa.
Let’s look at what happens when a button is pushed. Suppose the breaker 1 is OFF (LED 1 red), and you push the “Turn Breaker 1 ON” button. A message is published with the topic esp-32_DDA795/Channel_1 with a payload of “1”. The topic is received by the MQTT server, and it forwards the message to any subscribers. The application running on the ESP-32 has subscribed to these topics, and so it will receive them. The topic is analyzed, and since it is for Channel_1 with a data payload of “1,” a pulse is placed onto pin 21, the digital output pin connected to the “set” input for breaker 1.
The pulse routine configures pin 21 as an output (driving pin 21 high), delays for 100 ms and reconfigures pin 21 as an input (removing any drive). This pulse will set the latching relay, which puts 24 VDC on the breaker’s control input. The breaker will switch “ON.” The second set of latching relay contacts provides feedback as a logic level of the breaker’s state. The circuit sees the breaker’s status change on the feedback input pin 22. The topic esp-32_DDA795/Digital_1 is published with a payload of “1.” MQTT forwards this to Node-RED, and the color of LED 1 is changed to green!
This circuitry can now be used by OpenHAB 2—the home control application on the Raspberry Pi. It is interesting to note that in an industrial setting, systems using similar hardware monitor and control buildings. Schneider Electric’s Square D products now include complete systems that handle this type of monitoring and control. As you probably suspect, the costs can be extremely high when compared to residential equipment. Figure 10 shows size comparisons of the standard breaker, the controlled breaker, and the industrial monitor and control breaker. You may have noted that the breaker I used has a 3-wire connector. This requires an external current sensor to monitor breaker current (as I have implemented).
The industrial breaker has both an internal DC motor to switch the breaker, and a current sensor to monitor the current of the breaker. This breaker has an integral, single, 2×3 pin socket, which mates to a low-voltage PCB mounted along either side of the breaker panel box. You can see this in Figure 11. Special rules must be observed when combining different class wiring in an electrical box. Please refer to National Electrical Code (NEC), NFPA 70  for the latest comprehensive regulations for electrical wiring, over-current protection, grounding and installation of equipment.
In an industrial environment, each piece of equipment commonly has its own circuit breaker. Monitoring and controlling breakers in this case can make sense, since that breaker has a single purpose. While our homes will often have this for specific appliances such as the furnace, stove and clothes dryer, other lower-current devices will share a circuit. This means turning off the breaker for your living room lights may also turn off other devices that share that breaker. So, it makes sense that we monitor and control individual devices at the device, and not at the breaker. We saw this approach years ago with X-10, and more recently with Wi-Fi-connected switches and outlets.
I tried to monitor device usage years ago through individual breakers, and found it impossible to determine which devices were ON in any particular circuit, especially when multiple devices were ON at the same time. Today, we can pinpoint device status and current draw. I hope appliance manufacturers will begin producing devices capable of this right out of the box. It would also be helpful to have an output available for a request for service. This would allow for smarter decision making. Until installing Wi-Fi-connected devices becomes a standard, we’ll settle for replacing wall switches and outlets around the house one by one. An expensive proposition, but done in stages doesn’t hurt so much. Being smart in how we control our devices can lower our utility bills, and this should pay off in the long run. Too much to do, so little time.
Figure 1 – By Laura Scudder – Laura Scudder, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=894343
Figure 4 – By Ali@gwc.org.uk – from en wikipedia, CC BY-SA 2.5, https://commons.wikimedia.org/w/index.php?curid=240147
PUBLISHED IN CIRCUIT CELLAR MAGAZINE• DECEMBER 2019 #353 – Get a PDF of the issue