Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors

Subpanel Install, Dual Emporia Vues, and more Home Assistant soft sensors

This year I've been expanding the electrical footprint in our home. I plan to begin a large solar install next year, so replacing our oil heat and propane appliances with electric has been high on my to do list. I added a circuit for our basement laundry, two 20A circuits for our partially finished bonus room in the attic, two minisplits, a heat pump hot water heater, and a run out to our chicken and goose coops. In doing so, I maxed out the breaker space in my 32 space GE Powermark panel. We recently purchased an induction stove - the full main panel was in my way of installing it.

Since last year, I've been monitoring my main breaker panel with an Emporia Vue, flashed with esphome and integrated with Home Assistant. The emporia only has 16 channels (+2 for your incoming conductors). Even though I'm only monitoring one leg of my 240v circuits, I still couldn't monitor them all. There wasn't more space in the panel to add a second unit. A single bigger panel couldn't fit two units either. I decided to install a 100A subpanel next to my main panel. This would give me a lot of future flexibility, make space for the induction range, and allow me add a second emporia vue to monitor every circuit in the house.

New panel wiring in progress - moving circuits to new panel. Main panel was crammed - I cleaned both panels up significantly before closing them up

I bought a GE Powermark gold 32 space main breaker panel, 2/2/2/4 aluminum SER cable, noalox, and a 90A GE breaker. First, I mounted the new subpanel on a piece of plywood. To prepare it to be a subpanel, I removed the neutral/ground bonding bar and installed the ground bonding screw. Back in the main panel, I removed my heat pump hot water heater circuit and installed the 90A breaker. I added lugs to the ground and neutral bars, landed the feeder cable in the main panel, and connected it to the sub panel. I used noalox on all aluminum connections. I moved 8 120v circuits over to the subpanel, reconnecting my heat pump hot water heater and leaving the major 240v loads in the main panel.

New panel buttoned up

I opted to buy a used emporia vue2 on ebay rather than the new emporia vue3. The newer model has CTs with a better plug (can be cut to reduce the mess of cables like with the fixed length vue2 CTs), but appears to be trickier to connect for flashing esphome. I broke the new vue2 open and soldered serial headers on the board. Rather than use a dedicated usb to serial board, I used an esp8266 as a serial bridge. After flashing esphome and installing the emporie-vue-local config, it was ready to be installed in the the new panel. I labeled each circuit on the panel and in home assistant by changing the circuit entities friendly names.

Headers on emporia vue, esp8266 as serial bridge, esphome flashed and talking to home assistant

I took this opportunity to adjust my phase voltage calibration constant on both emporia units by measuring the voltage on each phase with a multimeter and calculating per the docs. I reflashed the emporia with the updated config. It had always been a couple of volts off on either phase, throwing my real time use slightly out of whack.

sensor:
  - platform: emporia_vue
    i2c_id: i2c_a
    phases:
      - id: phase_a  # Verify that this specific phase/leg is connected to correct input wire color on device listed below
        input: BLACK  # Vue device wire color
        calibration: 0.02266  # 0.022 is used as the default as starting point but may need adjusted to ensure accuracy
        # To calculate new calibration value use the formula <in-use calibration value> * <accurate voltage> / <reporting voltage>

emporia config - phase voltage calibration

Quick summary page for all circuits monitored by the emporia units

Monitoring every circuit in the house has let me set up some additional soft sensors in home assistant:

Washer and Dryer Status:

  • My dryer and washer are both on a dedicated circuit in the basement. I set up a "helper" that creates a template binary sensor for each - if washer or dryer circuit statuses are over 100w, the state is "on", otherwise off. I have an automation that sends our phones alerts when either changes from on to off, indicating the cycle is complete.
{{ states('sensor.circuit_10_power')|float > 100}}

Washer run status template binary sensor

Oil Furnace State and Fuel Consumption:

  • Similar to the washer/dryer, my oil burner is also on dedicated circuit. I used the same concept to first create a binary state.
  • Because the burner is a fixed flow rate, I could use furnace state to accurately estimate real time consumption. I used the history stats integration looking at the binary state of the burner to create a "boiler runtime today" sensor.
sensor:
  - platform: history_stats
    name: Oil Burner Runtime Today
    entity_id: binary_sensor.oil_burner_state
    unique_id: biasi_b10_runtime
    state: "on"
    type: time
    start: "{{ today_at() }}"
    end: "{{ now() }}"
          

Oil burner runtime, history stats integration configured manually in home assistant configuration.yaml

  • I pulled the nozzle on my burner to determine its flow rate (0.85gph @ 100psi) and pulled up the spec sheet to determine flow at my pumps rated pressure (180psi). This turned out to be 1.12gph. I created a template sensor looking at the runtime sensor to calculate gallons of oil used.
{% set runtime_in_hours= states('sensor.oil_burner_runtime_today') | float %}

{% set gph_flow = 1.12 | float %}

{% set galused = (runtime_in_hours*gph_flow) | float %}


          {{ galused | float | round(3) }}
{% set oil_used= states('sensor.oil_burned_today') | float %}

{% set oil_cost = states('input_number.heating_oil_price') | float %}

{% set returnvalue= (oil_used*oil_cost) | float %}


          {{ returnvalue | float | round(3) }}
  • I added oil used today and dollars spent on oil today as badges on one of my sections' header.
Oil burner state and gallons used today on a graph for the past few days

As I mix heat sources this winter (minisplits, woodstove, and oil burner) and the economics of electricity and oil fluctuate, these numbers should help me quickly and easily optimize fuel costs.

Somewhere in there I remembered why I started this project and replaced our gas range with an induction range. I shut off the gas outside and capped the line in the event I ever decide to go back to gas. I ran 6/6/6/6 SER cable (much cheaper than the 8awg romex I was looking at at first) to a 4 conductor stove 14-50R surface mount outlet and then installed the range.

Gas capped off, new outlet installed
Range installed

We've enjoyed the range so far and I look forward to running it for free on solar power next year.