OEM alert reference
How alerts arrive from integrations, which provider keys apply, and what to expect per OEM
Alerts ingested from OEM and partner systems share the same Texture schema, but each integration differs in polling cadence, severity mapping, resolution behavior, and alert volume. Use this reference when tuning workspace alert configuration or investigating noisy fleets.
For the alert data model, REST operations, and visibility controls, see Alerts, Alerts API, and Alert configuration.
Provider key vs connection slug#
Two identifiers appear in documentation and the Dashboard:
| Identifier | Where it appears | Used for |
|---|---|---|
| Connection manufacturer slug | Connect / Settings → Alerts OEM list (e.g. solaredge-web, enphase) | Labels in the Dashboard; OEM override key in workspace settings |
Alert.provider | Stored on each alert row; event pipeline | Visibility filtering and OEM override enforcement |
Usually these match (e.g. enphase / enphase, sma / sma). When they differ, an OEM override toggled in the Dashboard may not hide alerts until the override key matches the stored provider value. See OEM overrides and filtering below.
Provider summary#
| Integration | Typical connection slug | Alert.provider | Primary ingestion path |
|---|---|---|---|
| SolarEdge Web Monitoring | solaredge-web | solaredge | Alert adapter (connection.poll) and OEM adapter |
| Enphase | enphase | enphase | Alert adapter (site alert polling) |
| SMA | sma | sma | Alert adapter (provider grant poll) and OEM adapter |
| Also Energy | also-energy | also-energy | Alert adapter (Also Energy app / provider grant poll) |
| ChargePoint | chargepoint | chargepoint | OEM adapter |
| Generac | generac | generac | OEM adapter |
| Tesla (grid services) | tesla / program-specific | tesla | OEM adapter (grid services alerts) |
Manual and programmatically created alerts use other provider values (for example manual or values you supply when creating an alert).
SolarEdge#
Ingestion#
SolarEdge alerts primarily flow through SolarEdge Web Monitoring (POST-based site/account alert APIs) via the alert and OEM adapters. A separate SolarEdge Monitoring API v2 (GET /v2/sites/{siteId}/alerts, OAuth) exists for device-oriented monitoring; alert polling today is centered on the web monitoring integration.
Provider key#
- Dashboard slug:
solaredge-web - Stored
Alert.provider:solaredge
When hiding SolarEdge alerts with OEM overrides, confirm whether your workspace stores solaredge on alert rows. If overrides use solaredge-web but alerts carry solaredge, filtering may not apply until keys align.
Severity and status#
| Signal | Mapping |
|---|---|
| Severity | Derived from numeric impact: high impact → CRITICAL, moderate → WARNING, zero/low → INFO |
| Status | Prefer serverStatus when present; otherwise infer from open / muted flags (OPEN, IGNORED, or RESOLVED) |
In practice, many rows arrive with serverStatus unset, so status often follows the boolean fallback path. That can produce a mix of open and resolved states that do not match the SolarEdge UI verbatim.
Volume and operational quirks#
- High INFO volume — Low
impactscores map toINFO; disabling INFO in workspace configuration is a common noise reduction step. - Deduplication — The pipeline deduplicates alerts across sites and poll cycles; repeated upstream signals may collapse to a single Texture alert per logical condition.
- Rich OEM text — Titles and descriptions often include HTML and long remediation steps from SolarEdge;
type/subtypeare inferred via message mapping where possible. - Upstream auto-clear — Some SolarEdge alert types clear automatically after sustained normal operation (for example, grid export conditions over 24 hours). Texture reflects status updates on subsequent polls.
- v2 API limits — The OAuth v2 alerts endpoint does not support date-range or pagination parameters; bulk historical backfill via v2 is limited compared to web monitoring.
Enphase#
Ingestion#
Enphase system alarms are polled per site through the alert adapter when Enphase connections are active.
Provider key#
- Dashboard slug:
enphase - Stored
Alert.provider:enphase
Severity and status#
| Enphase code | Texture severity |
|---|---|
| 1, 2 | CRITICAL |
| 3 | WARNING |
| 4, 5, 6 | INFO |
| Condition | Texture status |
|---|---|
alarm_end_time is null | OPEN |
alarm_end_time is set | RESOLVED |
Severity may arrive as a JSON number or string depending on the API layer; the mapper normalizes both.
Volume and operational quirks#
- Moderate INFO share — Codes 4–6 map to
INFO; tune severity filters if informational alarms dominate. - Explicit resolution — Cleared upstream alarms move to
RESOLVEDwhenalarm_end_timeis populated on the next poll. - Title prefix — Ingested titles are often prefixed for traceability (e.g.
enphase:…). - Unknown severity codes — Codes outside 1–6 may fall back to
INFOor fail ingestion depending on adapter configuration; monitor for new Enphase severity values after platform updates.
SMA#
Ingestion#
SMA alerts are ingested via provider-grant polling in the alert adapter and through the OEM adapter for connected sites.
Provider key#
- Dashboard slug:
sma - Stored
Alert.provider:sma
Severity and status#
SMA level | Texture severity |
|---|---|
Error, Disturbance | CRITICAL |
Warning | WARNING |
Info | INFO |
SMA occurrence | Texture status |
|---|---|
Appeared (or missing) | OPEN |
Solved | RESOLVED |
Volume and operational quirks#
- Duplicate status pings — SMA may emit repeated notifications for the same condition. The OEM path deduplicates high-frequency repeats; you may still see bursts after reconnects.
- Short-lived events — Rapid
Appeared/Solvedcycles can create multiple alert rows over time; use status filters in thealertsquery for open-only views. - Unknown labels — New
leveloroccurrencestrings may map to soft defaults (INFO/OPEN) or be dropped depending on adapter strictness.
Also Energy#
Ingestion#
Also Energy alerts are pulled via the Also Energy app integration (provider grant polling) in the alert adapter. Hardware and site metadata are resolved before alerts are published.
Provider key#
- Dashboard slug:
also-energy(app / grant identifier) - Stored
Alert.provider:also-energy
Severity and status#
Severity and status are derived from Also Energy alert fields (alert code, title, and hardware state). Alert codes are mapped to Texture type / subtype where a known mapping exists.
Volume and operational quirks#
- Hardware-centric alerts — Many events relate to inverter/hardware faults and communications on monitored hardware.
- Grant-scoped polling — Ingestion runs in the context of Also Energy provider grants; sites without a valid grant do not poll.
- Feature gating — Alert adapter processing can be disabled per manufacturer via platform feature flags during cutover or maintenance (alerts may pause without changing workspace configuration).
Other OEM paths#
These integrations publish alerts through the OEM adapter with stable provider keys matching their manufacturer slug in most cases:
| Integration | Alert.provider | Notes |
|---|---|---|
| ChargePoint | chargepoint | EV charger fault and status alerts |
| Generac | generac | Generator / backup power alerts |
| Tesla (grid services) | tesla | Grid services alert programs; connection slug may differ from provider |
Treat entries in the Dashboard OEM list as the connection slug; verify provider on a sample alert when tuning overrides.
OEM overrides and filtering#
Workspace alert configuration hides alerts by OEM slug in the Dashboard. At runtime, filters compare overrides against Alert.provider, not the providerName / providerCode display fields.
Practical guidance:
- Open an alert you want to suppress and note its stored provider in the Dashboard or via support tooling.
- If Dashboard slug and
Alert.providerdiffer, align the override key with the stored provider value, or hide by severity until keys match. - After saving configuration, confirm filtered alerts no longer appear in the Dashboard for that integration.
Reducing alert volume#
| Goal | Suggested approach |
|---|---|
| Cut informational noise | Disable INFO in severity filters after first save |
| Silence one integration | OEM override off for that slug if it matches Alert.provider; otherwise filter by severity or disable visibility temporarily |
| Pause all outbound noise | Disable Alert visibility (master switch); capture continues |
| Audit full history | Query or export outside filtered Dashboard views; all alerts remain stored |
Related guides#
- Alerts — Overview and capture principle
- Alert configuration — Dashboard visibility controls
- Alerts API — List and filter alerts via REST
- Devices and OEMs — Connecting manufacturer accounts