Microinverters appear on wrong Envoy
SteveJack34 opened this issue · 11 comments
I have 2 Envoys each with 3 microinverters provisioned. One has IQ7s and the other has IQ8s. I have them setup in HA. When I do a restart on HA, I find all of the microinverters are suddenly assigned to only one of the Envoys. Consequently I dont get any readings from the ones that are wrongly assigned. If I reload the envoys in HA the microinverters all reappear on the correct Envoy.
Prior to restart both Envoys have 7 entities. After restart one has 10 entities and the other has 4.
Anybody have any thoughts?
Steve
Hi @SteveJack34, what's the story on the whole? Was the envoy with the 3 iq7 first and the one with the iq8 later, where they added at the same time to HA? The 7th one sounds weird as you have 2x3. Where there other inverters in the past?
Can you share the diagnostic files for both Envoys?
Can you then enable debug on the Envoy integration, let it run for couple of minutes, restart HA. Let it run for few minutes and then reload both Envoys. Let it run again for a few minutes and then stop disable the debug again. Log file will download to your workstation. Then share it as well.
Hi Catsmanac
The Envoy with the IQ7s was first. Didn't realise when we did the second set of Panels that you couldn't have a mix of IQ7s and IQ8s on the same Envoy. So cheapest option was to buy a second Envoy. Long term will probably swap out the IQ7s for IQ8s and get rid of the first envoy.
Logs attached along with a couple of screenshots.
Steve
home-assistant_enphase_envoy_2024-06-06T07-09-06.338Z.log
I see 10.1.6.123 and 10.6.1.126. Which is the IQ7 envoy and which the IQ8 envoy?
Steve, it looks like the old envoy has somehow picked up the new panels. It's sending these in its data report with zero values. The new envoy reports these as well with values, but as the serial number is used as key it ignores them for the new envoy.
You may want to check the old envoy config (or have it checked) as I wouldn't be surprised they are in there.
024-06-06 08:08:03.049 DEBUG (MainThread) [custom_components.enphase_envoy.envoy_reader]
Fetched (1 of 2) in 0.2 sec from https://10.1.6.126/api/v1/production/inverters: <Response [200 OK]>: [
{
"serialNumber": "482241023623", <-- old panel
"lastReportDate": 1717657462,
"devType": 1,
"lastReportWatts": 99,
"maxReportWatts": 294
},
{
"serialNumber": "482241023804", <-- old panel
"lastReportDate": 1717657013,
"devType": 1,
"lastReportWatts": 101,
"maxReportWatts": 292
},
{
"serialNumber": "482241028347", <-- old panel
"lastReportDate": 1717656803,
"devType": 1,
"lastReportWatts": 103,
"maxReportWatts": 296
},
{
"serialNumber": "512334001585", <-- new panel
"lastReportDate": 0,
"devType": 1,
"lastReportWatts": 0,
"maxReportWatts": 0
},
{
"serialNumber": "512332000673", <-- new panel
"lastReportDate": 0,
"devType": 1,
"lastReportWatts": 0,
"maxReportWatts": 0
},
{
"serialNumber": "512332000700", <-- new panel
"lastReportDate": 0,
"devType": 1,
"lastReportWatts": 0,
"maxReportWatts": 0
}
]
2024-06-06 08:08:06.059 DEBUG (MainThread) [custom_components.enphase_envoy.envoy_reader]
Fetched (1 of 2) in 0.3 sec from https://10.1.6.123/api/v1/production/inverters: <Response [200 OK]>: [
{
"serialNumber": "512332000673", <-- new panel
"lastReportDate": 1717657320,
"devType": 1,
"lastReportWatts": 119,
"maxReportWatts": 393
},
{
"serialNumber": "512332000700", <-- new panel
"lastReportDate": 1717656362,
"devType": 1,
"lastReportWatts": 21,
"maxReportWatts": 339
},
{
"serialNumber": "512334001585", <-- new panel
"lastReportDate": 1717657321,
"devType": 1,
"lastReportWatts": 38,
"maxReportWatts": 350
}
2024-06-06 08:08:16.586 ERROR (MainThread) [homeassistant.components.sensor]
Platform enphase_envoy does not generate unique IDs. ID 512332000673 already exists - ignoring sensor.envoy_122310039288_inverter_512332000673
2024-06-06 08:08:16.587 ERROR (MainThread) [homeassistant.components.sensor]
Platform enphase_envoy does not generate unique IDs. ID 512332000700 already exists - ignoring sensor.envoy_122310039288_inverter_512332000700
2024-06-06 08:08:16.587 ERROR (MainThread) [homeassistant.components.sensor]
Platform enphase_envoy does not generate unique IDs. ID 512334001585 already exists - ignoring sensor.envoy_122310039288_inverter_512334001585
Sounds like an envoy power down / up has happened already then, which would have been my next thought.
The only handle to use to ignore these is
"lastReportDate": 0,
and ignore these inverters when HA starts. Would be the first code to deal with envoy 'features', but if there a simple way of 'cleaning' the Envoy that would be first choice.
What are you getting when you browse to the envoy/production.json, something with inverter activecount in it:
{
"production": [
{
"type": "inverters",
"activeCount": 24,
"readingTime": 1717668845,
"wNow": 2731,
"whLifetime": 967445
}
And /inventory reports all panels labeled as pcu, wonder if and how the new panels show there.
{
"type": "PCU",
"devices": [
{
"part_num": "800-01127-r02",
"installed": "1675855804",
"serial_num": "122219085275",
"device_status": [
"envoy.global.ok"
],
"last_rpt_date": "1717668694",
"admin_state": 1,
"dev_type": 1,
"created_date": "1675855804",
"img_load_date": "1613405094",
"img_pnum_running": "520-00082-r01-v04.27.04",
"ptpn": "540-00169-r01-v04.27.09",
"chaneid": 1627390225,
"device_control": [
{
"gficlearset": false
}
],
"producing": true,
"communicating": true,
"provisioned": true,
"operating": true
},
Definitely something ghostly in there.
Let me get you a hack to see if ignoring last report time 0 solves the issue. Be back in a while.
Unzip below zip, it will provide envoy_reader.py. To test it, copy the envoy_reader.py to /config/custom_components/enphase_envoy folder after first saving the original envoy_reader.py in there.
Then restart HA. This should ignore the inverters with 0 last report time. A debug log would show something like
2024-06-06 14:20:43.161 DEBUG (MainThread) [custom_components.enphase_envoy.envoy_reader]
Ignoring Inverter 122334400007, its reporting zero last reported time
To undo the change copy the saved original one back in /config/custom_components/enphase_envoy and restart HA again.