v4.0.0b1
Pre-release
Pre-release
🚧 Breaking changes
- Changed degraded-service Repair notifications from implicit default-on to
default-off for entries without a saved preference. Existing degraded-service
Repair issues are cleared while this option is disabled; re-enable them under
Options > Notifications. System-event Repair notifications are also default-off. - Made manual Grid Mode controls explicitly opt-in under Options > Advanced > Grid
Mode. Grid Control Status, Request Grid Toggle OTP, control-check polling, and
the related service actions remain unavailable until enabled; the read-only Grid
Mode sensor remains available. - Removed the IQ Battery CFG, DTG, and RBD schedule sensors when Enable Battery
Scheduler is disabled. Users who had disabled the scheduler but retained these
sensors must re-enable it under Options > Devices > Device Features. - Removed internal calculation and stable charger metadata attributes from the
frequently updated IQ EV Charger Power and Last Reported sensors to reduce
Recorder growth. Power restore baselines now use private Home Assistant
restore data. - Removed high-cardinality device metadata from IQ Battery charge and
microinverter lifetime-energy state attributes. Use integration diagnostics
for the complete device payload; the remaining operational attributes are
excluded from recorder history.
✨ New features
- Added optional installer-level microinverter parameter telemetry with bulk device reads for power and available AC/DC voltage/current, frequency, temperature, signal, and firmware details. Empty authoritative reads clear old values, partial failures retain only bounded stale data, and the per-inverter entities are disabled by default.
- Added read-only System Dashboard event monitoring with a diagnostic active-event
binary sensor and optional Repairs for active standing alarms. Repairs clear when
Enphase returns a matching explicitly resolved event. The event entity is
created only after the installer endpoint responds successfully, so owner-only
accounts do not receive an unavailable installer-only entity. - Added read-only IQ Gateway software-update progress monitoring to the existing
advisory update entity, including Home Assistant in-progress/percentage state,
timing, installed image version, and sanitized component transfer details. - Added multi-gateway phase-map discovery so site controls prefer the primary or
default IQ Gateway and Gateway Status reports phase/topology diagnostics only when
authoritative phase-map data is available. - Added opt-in Enphase site weather on the Enphase Cloud device. The weather entity
is created only after the authenticated weather endpoint returns a valid current
reading. - Added installer-only, cloud-based Grid Profile Control with country-scoped region and profile selection, explicit apply confirmation, current profile monitoring, and follow-up cloud status refreshes.
🐛 Bug fixes
- Fixed the Authentication options menu and form so their localized headings,
descriptions, and field copy render instead of blank rows or raw schema keys. - Reconciled every locale with the complete canonical translation surface,
localized previously English-only migration and authentication copy, corrected
AC Battery status translations, and added permanent full-catalog coverage checks. - Removed obsolete editable tariff entities as soon as refreshed tariff structure
no longer contains them, published integration-initiated tariff writes
immediately with bounded read-after-write retries, and reduced normal tariff
refresh latency from 15 minutes to 5 minutes. - Restored localized Devices and Device Features headings, field labels, and
descriptions by providing both native section translations and step-level
compatibility aliases for Home Assistant frontends that resolve nested option
controls through the parent step. - Cleared a System Event Repair immediately when the Events endpoint reports its
matching event resolved, even if the Standing Alarms endpoint briefly retains a
stale copy. - Reported Charger Authentication as Off when Enphase returns a present
authentication setting with null values, matching the Enphase app, and accept
literal on/off values from compatible payload variants. - Made the aggregate Microinverter Last Reported sensor choose the newest valid
timestamp across the topology summary and every current microinverter, so stale
summary data cannot override fresher per-device reports. - Refreshed System Dashboard events during the non-blocking startup warmup and
retained an existing Active System Events entity while that first reload fetch
is pending, avoiding an additional coordinator poll delay and entity churn. - Fixed Storm Alert opt-out returning HTTP 403 by routing the write through the
BatteryConfig XSRF bootstrap and regional authentication fallback pipeline,
including reuse of a matching browser-session cookie when available. - Prevented partial microinverter parameter responses from incorrectly degrading
Service Status while useful fresh telemetry remains available. Empty results now
degrade immediately without usable cache, or after repeated full-batch failures. - Prevented ordinary stateful System Dashboard event records from incorrectly
setting Active System Events to Problem. Standing alarms and explicitly
high-impact events now drive Problem and are the only records shown in its
active-events attribute or included in its active and device-type counts, while
Repairs and alarm severity come from the authoritative Standing Alarms endpoint. - Prevented Home Assistant startup from waiting indefinitely on Enphase warmup
and gateway firmware progress loops by registering long-running work as true
background tasks. - Kept IQ EV Charger
preferred_modestable in Manual mode by separating the
numeric runtime mode from the scheduler preference and retaining fresh
battery-profile preference data between profile refreshes. (#774) - Serialized installer Grid Profile writes, expired unconfirmed pending state after
the follow-up window, and moved steady metadata refreshes off the coordinator's
critical path. - Kept partial IQ Gateway firmware progress active when status text includes a
percentage followed by “complete”. - Paginated System Dashboard events so active high-impact events beyond the first
200 rows are included in sensors and Repairs, exposed bounded-result truncation,
and expired missing prior-day Repairs only after a complete six-hour grace period. - Prevented multi-megawatt site power spikes during startup by reseeding derived
power baselines when lifetime-flow sources change, normalizing live-power
units, and requiring a newer comparable sample before publishing extreme
readings. - Fixed Enlighten authentication after Enphase retired the Entrez token mint by
using the first-party session token endpoint and retaining rotated session
cookies, and aligned BatteryConfig reads with the current cookie-session web
request shape. (#758) - Fixed Grid Mode so it reads the live-stream
meters.gridRelayvalue and
falls back to outage-context fields such asshow_grid_connectonly when the
live relay state is unavailable. - Fixed config-entry unload and entity removal leaving delayed backoff, schedule,
battery-profile recovery, discovery persistence, or firmware refresh work running
against retired integration objects, and await task cancellation before closing
the API client. - Tracked scheduled refresh, startup, weather discovery, switch failure recovery,
reauthentication setup, and EVSE auto-resume work through unload, and bound
cancellation waits so a stuck task cannot block config-entry shutdown. - Shared firmware version history across config entries so concurrent delayed saves
cannot overwrite another site's transitions. - Fixed optional or concurrent cloud reads deadlocking credential refresh while
the initiating request still held the shared Enlighten read limiter. - Preserved pending discovery snapshots when a storage write is cancelled so a
later refresh can retry persistence instead of losing the observed revision.
🔧 Improvements
- Added an explicit uppercase warning to Grid Profile Control that applying an
incorrect profile may cause the system to malfunction. - Moved degraded-service and system-event Repair controls into a dedicated
Notifications options page. - Removed redundant Devices and scheduler helper copy.
- Moved Pricing Edits and Weather from general Settings into the Devices page's
Device Features section while preserving existing preferences and defaults. - Prioritized Enphase Cloud power refreshes during startup and published their
results immediately, with current-power and site-energy requests attempted in
parallel under a 55-second deadline. - Documented the Enphase University training and Enphase Support request process
for users seeking Installer Toolkit (ITK) / Self Installer access, including
regional caveats and a support-request template. - Renamed the general Settings options page to Polling, restored scheduler helper
descriptions, and moved the clearly labeled EV Charger nominal-voltage fallback
into Devices > Device Features with an explanation of its power-estimation
purpose. - Added a default-off System Event Repair Notifications switch under Options >
Notifications. Existing event Repairs are removed while disabled. - Added a dedicated Devices page to integration Options for Gateway, Battery, EV
Charger, Heat Pump, and Microinverter category selection, with a separate Device
Features section for EV charger and battery schedulers, Pricing Edits, Weather,
and the EV charger nominal-voltage fallback. Saving Polling options now preserves
Devices, Notifications, Authentication, and Advanced choices. - Moved Start reauthentication and Forget stored password to a dedicated,
fully described Authentication page in integration Options. - Moved Cloud Reachable from the standard Sensors section to Diagnostic without
changing its entity identity or connectivity behavior. - Showed IQ Battery CFG, DTG, and RBD schedule sensors only when Enable Battery
Scheduler is selected, and removed existing schedule sensor registry entries when
the option is turned off. - Added a default-on Enable Pricing Edits checkbox under Options > Devices > Device
Features. Disabling it removes editable tariff rate entities while keeping
read-only pricing sensors and the Update Tariff action available. - Moved safety-sensitive manual Grid Mode controls under an explicit Advanced
integration option that defaults off. The read-only Grid Mode sensor and its
telemetry remain available, while Grid Control Status, Request Grid Toggle OTP,
control-check polling, and service actions require the user to opt in. - Renamed per-microinverter Telemetry entities to Power and moved them from the
Diagnostic category into the standard Sensors section without changing their
registry identities. - Added a bounded, identifier-free active-event summary to Active System Events and
excluded the attribute from Recorder history to avoid database growth. - Ran bulk microinverter parameter requests with a concurrency limit of two and
an independent timeout per request, retained per-parameter cache freshness, and
exposed sanitized endpoint failure reasons and retry times on Service Status. - Isolated the startup Grid Profile probe behind the optional-read limiter and the
same aggregate queue-and-request deadline used by steady metadata refreshes. - Persisted hourly system-event Repair last-seen checkpoints so integration reloads
cannot restart the missing-event grace period. - Bound optional Enlighten request queueing and startup warmup stages, reserved
cloud-read capacity for core status traffic, and retained the last current-power
sample with retry backoff when that optional endpoint is unavailable. - Shortened config-entry setup by limiting its blocking refresh to authoritative
charger status, starting power acquisition under a separate 55-second budget,
running translation/version priming concurrently, filtering warmup calls by
enabled device features, and publishing each completed warmup stage immediately. - Added setup, entity-forwarding, power-ready, and warmup timing milestones to
diagnostics, and stopped running registry cleanup on ordinary telemetry updates. - Added bounded live-debug timeouts, active/idle cache intervals, failure backoff,
stale-state preservation, and cancellation-safe background refresh for gateway
software-update monitoring. - Documented the IQ EV Charger device automation triggers and the integration's
use of standard Home Assistant conditions. - Reused a Home Assistant-managed stateless HTTP session for cookie-authenticated
BatteryConfig writes instead of creating a new connection pool per request. - Added localized System Health labels for tariff status, degraded services,
and firmware catalog diagnostics in every supported language. - Reduced recorder and event-loop overhead on large sites by reconciling sensor
registries only when topology or entity capabilities change, caching per-update
battery and microinverter snapshots, and excluding diagnostic device metadata
from recorder history. Detailed inverter and battery metadata remains available
in integration diagnostics. - Reduced refresh overhead by persisting compact discovery identity metadata only
when its revision changes, and made cloud-call diagnostics operation-scoped so
background work no longer inflates coordinator refresh counts. - Added failed and cancelled refreshes plus request queue, network, and parsing
timing totals to the rolling refresh performance diagnostics when available. - Added five-minute cloud metadata refreshes for the current Grid Profile sensor and preserved the entity during transient Activation service outages.
🔄 Other changes
- Bumped the integration manifest version to
4.0.0b1.