Skip to content

Production switch on/off propagates but PCU re-enable unreliable on D8.3.5286 (IQ Gateway Metered, no CTs) #292

Description

@ThaSoleus

Describe the bug

The production switch sends the on/off command correctly to the Envoy. I can
see this in the Enlighten event log. The problem is what happens after that.

When I toggle off, only some inverters stop, and they do so in a slow,
staggered pattern. When I toggle on again, production does not come back
within a reasonable time. After two test cycles I had to recover the system
manually via Enlighten Manager (Disable then Enable Power Production task)
to get all 18 PCUs producing again.

Account type

  • Installer
  • DIY / DHZ
  • Home Owner

Envoy

  • Metered with CTs installed

  • Metered without CTs

  • Standard

  • FW version: D8.3.5286

  • Gateway PN: 800-00656-r06

  • Microinverters: 18 x IQ7+

  • Grid profile: EN 50549-1:2019 RfG E02 Netherlands:1.2.4

Home Assistant

  • HA version: 2026.5.0
  • Integration version: 0.8.4
  • Token type: installer (verified via the diagnostic sensor)
  • The official enphase_envoy integration was deleted before installing this
    one. Disabling was not enough, the new install still hit "already
    configured" until I deleted the old config entry.

What I did

Two test cycles on 2026-05-08, both with battery idle and full (SoC 99 %)
and EV stopped. I used the P1 meter as ground truth because the production
sensor in this integration lags badly (more on that below).

Test 1: 12:41:49 -> 12:53:31, off period 11m42s, baseline around 5 kW PV

The production sensor stayed frozen at 5.061 kW for the whole off period.
P1 settled around -74 W, which I cannot interpret cleanly because the
battery was running its P1 balancing mode and may have masked the actual
PV reduction. After toggle on, PV recovered to roughly 80 % within 80
seconds. So this first test did not give me a clean reading.

Test 2: 15:52:05 -> 15:59:53, off period 7m48s, baseline around 5 kW PV

This time the battery was idle and full, so P1 reflects PV directly.
Negative P1 means export to grid:

t P1 (W) Note
0 -3725 full export, all PCUs producing
30s -2666 partial reduction
90s -1576 about 60 % reduction
105s +40 brief near zero
120s -1340 rebound, PCUs not synchronized
181s -4007 full PV export again, mid-cycle
332s -597 about 85 % reduction
437s -535 end of off, 1 or 2 PCUs of 18 still producing

So the off command works, but only partially and on a slow rolling cycle.

After toggle on at 15:59:53, P1 went to roughly zero and stayed there. PV did
not come back. I waited 18 minutes, then tried an off then on kick (a quick
30 second cycle). No effect.

Recovery via Enlighten task

After about 20 minutes of no recovery I went to Enlighten Manager, opened
the Envoy, and ran the Disable Power Production task (this took 10 to 15
minutes to complete, the UI says "check back later"). Once it had completed
I clicked Enable Power Production. A few minutes after that, P1 jumped to
-1412 W and PV was back to normal output.

Enphase event log (Enlighten CSV)

This confirms my HACS toggles arrived at the gateway correctly:

12:42:43  STATEFUL  Power generation off by command   (HACS toggle off 12:41:49)
12:54:19  CLR       Power generation off by command   (HACS toggle on 12:53:31)
15:53:04  STATEFUL  Power generation off by command   (HACS toggle off 15:52:05)
16:00:52  CLR       Power generation off by command   (HACS toggle on 15:59:53)
16:18:23  STATEFUL  Power generation off by command   (HACS kick off 16:17:34)
16:19:02  CLR       Power generation off by command   (HACS kick on 16:18:04)

Each command shows up at the gateway about a minute after the HACS service
call. The integration is doing its job. The unreliability is downstream of
the gateway: PLC propagation to the PCUs, and the re-enable behaviour
specifically.

Observations

  1. Switch state desync after Enlighten task: while the Enlighten Disable
    task was running, the HACS switch flipped to off, which is correct. But
    after the Enlighten Enable task completed and PV came back fully (P1
    showing 1.4 kW export), the HACS switch still showed off. The integration
    does not seem to pick up the Enable from the Enlighten side. Possibly a
    different flag, or just slow polling.

  2. sensor.envoy_*_current_power_production is not real-time. I lowered
    "minimum time between entity updates" to 10 s in the integration options,
    but the sensor still lags 5 to 15 minutes. During an off test it shows
    the pre-test cached value for the whole period. After recovery it decays
    slowly toward reality. This makes it unusable as a real-time signal for
    automation.

  3. Re-enable is unreliable. The CLR event reaches the gateway fine, but the
    PCUs often do not resume. Multiple toggles did not help. Only the
    Enlighten Disable + Enable task pair worked. This matches your remark
    in [BUG] Production switch does not work. #250 that the production stop and start implementation on the Envoy
    itself is buggy.

Diagnostics

Happy to share the integration diagnostics file if helpful, just let me know.

Workaround for now

I am not going to rely on this switch for automated price-based curtailment.
Instead I let the battery and EV absorb PV surplus during negative price
windows. Less direct, but reliable. If I install CTs later I can move to
Soft PEL with the meter feedback loop.

Suggestions / questions

  • Could the integration poll the gateway production state more aggressively
    for a few minutes after a switch.turn_on call, so the entity catches up
    even when the PCUs lag?
  • Would it make sense to document the Enlighten Disable + Enable recovery
    in the readme, for D8.3.x firmware?
  • Could the switch.turn_on action optionally trigger a Send Latest Grid
    Profile broadcast as a kick mechanism for stuck PCUs?

Thanks for the integration. Even with this issue, installer-account control
from HA is a big step up from the alternatives.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions