Emporia Vue Utility Connect

@Sc00bs110, that video is for the Emporia Vue in-breaker-panel power monitor device. This thread is about the Emporia Vue Utility Connect device, which is a completely different animal that only connects to smart meters.

1 Like

My new one has the same issue as the old one; reporting 1704 W constantly. I checked with Emporia and they couldn’t find anything wrong. Next step is the utility provider.

Have you had any success yet with your new one?

My new one seems to have the same issue. I’m going to flash it with esphome and post the logs here. Maybe the meter isn’t compatible, or the firmware isn’t reading it well.

I finally got mine working! I had to call my utility company and they re-sent some sort of “intialization” command, and had me unplug & re-plug-in my device. The fixed value immediately changed to a different value but didn’t move. So I thought it didn’t solve the problem, but after about 5 minutes it started working.

Now I can finally proceed with flashing it. And I have a backup device in case anything goes wrong :slight_smile:

I flashed the custom firmware and it worked, but the power values and the energy values were both off by a factor of exactly 3. I’m not sure why that is. I added a multiply filter in the YAML code to correct the sensor values, and also changed the logging to report 3*x for each raw value received.

@jrouvier is there any reason that correcting it in the YAML won’t be acceptable? Not sure if I should go deeper and investigate the header file to make sure there isn’t some bit shift issue applicable to my meter, but I can’t see how that would explain a 3.0 multiple anywhere.

Thanks so much for putting this together. The HACS plugin has been working, but their servers seem to go down periodically. Nice to be able to get this data locally now!

This looks SO promising! Thanks Joe!!

I’d like to create a backup of the original firmware but esptool always hangs at “Stub running…”:

D:\>py -m esptool --port COM6 read_flash 0x0 0x400000 fw-backup-4M.bin
esptool.py v4.1
Serial port COM6
Connecting.........
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:62:ab:d9:57:f4
Uploading stub...
Running stub...
Stub running...
262144 (6 %)

If I try --no-stub I always get a packet error:

D:\>py -m esptool --no-stub --baud 115200 --port COM6 read_flash 0x0 0x400000 fw-backup-4M.bin
esptool.py v4.1
Serial port COM6
Connecting..........
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 24:62:ab:d9:57:f4
Enabling default SPI flash mode...
123904 (2 %)
A fatal error occurred: Packet content transfer stopped (received 56 bytes)

As you suggested, I shorted RTS to GND. However, the connection only works if I hit esptool a fraction of a second after plugging it in.

Do you have any advice?

Update from my end: Could flash it! My powerbank was the problem. Once I used the 5V supply of the serial adapter it worked!

Update 2: I had issues with MQTT as well because I used ‘*’ instead of ‘#’ in the ACL file.

Now I have another issue: The device exposes sensor/kwh and sensor/watts. The latter is correct and shows the current wattage consumption (in my case 199W). The first one though always shows kwh=114932.844kWh. Can this really be correct?

Hi all,

Super beginner here… Just wondering if this is stable and if anyone has seen a video of this full process. I just got my emporia vue utility monitor working and when trying to connect to HA I learned I needed to use their cloud which is not my preference.

The disclaimer on Git gave me pause… is that just some programming humor?

1 Like

@jrouvier I just got this installed and it looks like I’m having issues with negative numbers. It works fine until I am producing energy back to the grid. I am using the vue-utility-solar.yaml and the updated emporia_vue_utility.h but I’m still getting “Unreasonable watts value”. Here is the log of what I’m seeing. Do you have any ideas I can try?

[11:33:40][D][Vue:184]: Seconds since meter watt-hour reset: 42382.356
[11:33:40][D][Vue:196]: Meter Response Bytes   4 to   7: 00 04 36 89
[11:33:40][D][Vue:196]: Meter Response Bytes  44 to  47: 00 00 00 01
[11:33:40][D][Vue:196]: Meter Response Bytes  48 to  51: 00 00 03 e8
[11:33:40][D][Vue:196]: Meter Response Bytes  52 to  55: 31 33 00 00
[11:33:40][D][Vue:196]: Meter Response Bytes  56 to  59: 00 ff f0 70
[11:33:40][D][Vue:196]: Meter Response Bytes 148 to 151: 13 b4 86 02
[11:33:44][D][Vue:340]: Sending request for meter reading
[11:33:44][I][Vue:067]: kWh = 0.000
[11:33:44][I][Vue:089]: kWh = 0.000
[11:33:44][I][Vue:129]: kWh = 276.105
[11:33:44][E][Vue:325]: Unreasonable watts value 8384633
[11:33:44][D][esp-idf:000]: E (40228) Vue: 0x3ffb92dc   00 ff f0 79                                       |...y|

[11:33:44][E][Vue:327]: Full packet:

Try applying the patch from this PR, it should fix your issue.

Thanks @dailo for the suggestion. I got the fix uploaded and we’ll see tomorrow if it is working.

Now I gotta figure out negative kWh reported. I’m seeing the same issue that @something-is-wrong had in an early post about the meter not running backwards so it’s impossible to use the kWh net to obtain energy back to the grid. I temporarily implemented something in HA. But now I put in a couple extra sensors in the esphome code to find the negative kWh. I’ll post back if it ends up working out. But if anyone else has a cleaner method, I’m all ears!

It looks like my calculated way of returned kWh is working. I just checked it against what my utility company states for my usage at each hour mark and it is within 0.1 of each reading. I’m doing this on device and not within HA so the numbers do survive HA restarts.

I’m thinking about doing the code in the emporia_vue_utility.h file instead to keep it a little more clean but for a quick and dirty way to get returned kWh, this worked great. Here is the code I added to the bottom of the sensor: section

    - platform: template
      name: "Returned Power"
      id: 'returned_power'
      unit_of_measurement: 'kW'
      device_class: power
      state_class: total_increasing
      lambda: !lambda |-
        if (id(watts).state < 0) {
          return (id(watts).state * -1)/1000;
        } else {
          return 0;
        }
  
    - platform: integration
      name: "kWh Calculated Returned"
      id: kwh_calculated_return
      sensor: returned_power
      time_unit: h
      state_class: total_increasing
      device_class: energy

@jrouvier This was working like a charm … from June to exactly August 25. Since then the Vue always reports the same values:

kwh: 115187.234
watts: 273

That’s right, always at 273W and “kwh” does not update at all, so in HA it seems I am not using power. I have tried power cycling a couple of times. I see messages via MQTT explorer.

Any advice very much appreciated.

EDIT: Power LED is constantly on, Wifi LED constantly on, Link LED always off (never goes on). It seems that If this LED is never turning on then no readings are being returned by the meter.
What can be the reason for this?

Anyone knows how the meter pairing can be reset?

@dydx, you’ll have to contact your utility and ask them to re-provision your device, there’s nothing that can be done on the client side. I’d first try moving the device closer to the meter though, perhaps even standing right next to the meter with the vue, powered by a usb power bank and seeing if the link LED turns on.

Also, logs would be useful, especially if it’s logging Unhandled response type messages

1 Like

The latest release includes @dailo’s negative watt fix. It also logs some data from the MGM chip when connectivity to the meter is lost (mac address / install code / firmware version). I suspect some of the “broken” devices emporia is shipping really just have incorrect data printed on the device and this would help identify if this is the case or not.

This device from Emporia sounds like it basically translates Zigbee data from the meter into Wifi. So would it be possible to read the meter directly with a Zigbee controller like a Conbee?

Zigbee has different application profiles, each of which has a defined set of messages and message formats. A smart meter uses the Zigbee Smart Energy Profile (profile ID 0x0109) while controllers like Conbee and all the devices that connect to it use the Home Automation profile (profile ID 0x0104). The Conbee (and all other Zigbee controllers intended for home automation) is not programmed to read or send messages on any profile other than the HA profile.

1 Like

Just tried this - worked really well… Thank you for making this available.