Is there any way to prevent software from automatically pushing updates?
There is no such setting as I am aware of. I guess that the firmware update may require your having an account. After you set up the local MQTT, you can go into the app and delete your account on the Profile page. Then delete the app. It should prevent it from being updated. Additionally you can also block the device from accessing Internet.
Anyone keen to help create an ESPHome replacement firmware for this?
I have so far worked out that there is a ARM M4 that handles all the sensor readings and it just streams that data to the ESP32 that handles all the networking communications
The ARM MCU streams via UART to the ESP32 with JSON data
This is a capture of my unit with nothing attached
{
"data": [
{ "I": 555 },
{
"Ch": "00",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 121,
"Am": "000",
"Vrms0": "00006383689",
"Vrms1": "00005229861",
"Vrms2": "00005229466",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.836,
"v0": 714.043
},
{
"Ch": "01",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 120,
"Am": "000",
"Vrms0": "00006383080",
"Vrms1": "00005240202",
"Vrms2": "00005239521",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.975
},
{
"Ch": "02",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 126,
"Am": "000",
"Vrms0": "00006377724",
"Vrms1": "00005234196",
"Vrms2": "00005233335",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.376
},
{
"Ch": "03",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 125,
"Am": "000",
"Vrms0": "00006382713",
"Vrms1": "00005231384",
"Vrms2": "00005231002",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.934
},
{
"Ch": "04",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 125,
"Am": "000",
"Vrms0": "00006384034",
"Vrms1": "00005228577",
"Vrms2": "00005228256",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.836,
"v0": 714.082
},
{
"Ch": "05",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 124,
"Am": "000",
"Vrms0": "00006380755",
"Vrms1": "00005229577",
"Vrms2": "00005229793",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.715
},
{
"Ch": "06",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 123,
"Am": "000",
"Vrms0": "00006380203",
"Vrms1": "00005233772",
"Vrms2": "00005232710",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.653
},
{
"Ch": "07",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": -58,
"Am": "000",
"Vrms0": "00006384919",
"Vrms1": "00005235943",
"Vrms2": "00005235472",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 714.181
},
{
"Ch": "08",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 121,
"Am": "000",
"Vrms0": "00006388745",
"Vrms1": "00005235476",
"Vrms2": "00005235091",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 714.609
},
{
"Ch": "09",
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": -60,
"Am": "000",
"Vrms0": "00006382935",
"Vrms1": "00005235885",
"Vrms2": "00005235537",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.959
},
{
"Ch": 10,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 127,
"Am": "000",
"Vrms0": "00006375604",
"Vrms1": "00005232206",
"Vrms2": "00005231935",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.139
},
{
"Ch": 11,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 126,
"Am": "000",
"Vrms0": "00006374869",
"Vrms1": "00005222799",
"Vrms2": "00005222288",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.836,
"v0": 713.057
},
{
"Ch": 12,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 125,
"Am": "000",
"Vrms0": "00006378179",
"Vrms1": "00005225304",
"Vrms2": "00005224852",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.836,
"v0": 713.427
},
{
"Ch": 13,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 124,
"Am": "000",
"Vrms0": "00006381409",
"Vrms1": "00005229667",
"Vrms2": "00005229673",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.788
},
{
"Ch": 14,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 123,
"Am": "000",
"Vrms0": "00006377880",
"Vrms1": "00005229519",
"Vrms2": "00005229095",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.394
},
{
"Ch": 15,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 122,
"Am": "000",
"Vrms0": "00006375522",
"Vrms1": "00005227354",
"Vrms2": "00005227236",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.130
},
{
"Ch": 16,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 121,
"Am": "000",
"Vrms0": "00006382353",
"Vrms1": "00005231418",
"Vrms2": "00005231084",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.894
},
{
"Ch": 17,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 120,
"Am": "000",
"Vrms0": "00006382730",
"Vrms1": "00005240518",
"Vrms2": "00005239979",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.838,
"v0": 713.936
},
{
"Ch": 18,
"M": 255,
"I": "xxx",
"P": "xxx",
"angle": 127,
"Am": "000",
"Vrms0": "00006379519",
"Vrms1": "00005235614",
"Vrms2": "00005235087",
"Irms": "0000000000000",
"rp[m]": "00000000000000000",
"rp_adj[m]": "00000000000000000",
"rp_wh": "000.0",
"adj": 0.000,
"av": 0.837,
"v0": 713.577
},
{
"G0": {
"RMS": [ 597.49, 597.49, 597.49 ],
"Angle": [ 0.00, -12.97, -12.98 ]
},
"Channels": [
{
"Id": 0,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 1,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 2,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 3,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 4,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 5,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 6,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 7,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 8,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 9,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 10,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 11,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 12,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 13,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 14,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 15,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 16,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 17,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
},
{
"Id": 18,
"rawflg": 0,
"flg": 1,
"M": 255,
"R": 0.00,
"Ad": 0.00,
"Pa": 0.00,
"E": 0.00
}
],
"Frequency": 50.04,
"buf_size": 160,
"match_en": 1,
"match_start": 0,
"ts": 129936
}
]
}
I figured it used UART based on the traces but hadnāt had a chance to probe it since I installed the device. Iām interested in doing an ESPhome firmware. I started a thread on Digiblurās Discord of some of my findings if you want to help out. I have Esp32 dev experience but havenāt written a custom ESPhome component yet.
Iām looking at replacing my aging Neurio device, researching options, and stumbled on this device.
Any reason to use the Fusion Energy device over the Refoss device?
It is currently priced just a bit above the Fusion Energy device but advertises local HA support avoiding having to do all the extra steps?
I know itās a few bucks more but native local HA support without hours of config is worth $50 to me.
Completely agree with that last statement. It was a little hard to create an 1100 line yaml for two devices. The device you linked also supports cloud free, and has a lightning deal right now.
The Refoss isnāt anymore cloud free than Fusion. Both require you to download an app and create an account to set it up.
My meter reading voltage at around 170V⦠any idea why this happen?
Check if the antenna touches any metal part of the panel. I heard that it would give you weird readings.
If I were you I would choose ALL my circuits. Just because you only have 16 circuits doesnāt mean you can only chose 16 wires. As long as they are on the same phase you can run a couple of wires through one CT clamp and it will capture data of more than 1 circuit at a time.
I actually have 36 breakers and 25 is after combined some of them. Can I get it down to 16? Probably, but would lose the meaning of some of the readings. I just chose to skip those circuits with low usage. My data from the last couple months shows that I can capture 98-99% of all usage with the 16 clamps. Not bad.
I copied from this and the mqtt sensors are working great. I was expecting to see the utility_meter.yaml stuff making everything show up in the energy tab, but I see nothing new there. Did I do something wrong, or am I expecting the wrong thing?
The utility meters only show up at the Helpers tab. For the Energy dashboard you need to open the Energy Configuration and add the Sem Meter total energy to the grid and the circuits to the individual devices. See attached screenshots.
Can you hook up more than one unit?
Yes. Each SEM-Meter has its own MQTT topic based on SN (based on the Bluetooth Mac address). So you can set up as many as you want. In home assistant you can combine the totals using templates.
Iām just going through this topic after I bought and configured this SEM meter (and loving it). Just an FYI: if you have clamps short: you also can combine multiple circuits in one clamp. I had over 30 circuits and was able to combine them all with 16 clamps. Iāve sent back & forth with support to make sure how it works. Basically just make sure the clamps you combine are on the same phase. Also highly recommend the energy plus card & power flow plus card to have a nice realtime overview of current power flow (& history).
finally got around to swapping over to your yaml, with some personal preference adjustments, and wanted to say thanks again for sharing! Love the hourly, daily etc utility sensors!
Is this snip-it in addition to your original script? Or did you change only the one for āpowerā? Can you post your entire modified script? I will understand it better that way. Thanks.
I make a blueprint to help add the information from the meter into Home Assistant. It is based on this one: Smart Home Energy Monitor by Fusion Energy - #14 by peterxian by @peterxian
In addition to the blueprint, it also has instructions on how to setup MQTT.
Thanks, @eyal0 ā you beat me to it! This is the perfect use of a blueprint and I was planning on making one but just havenāt had the time. Great work and fantastic write-up. Highly recommend people use this method going forward.


