Inverter Events
An inverter is the one component that can fail in a dozen different ways, and Mirox watches it from two sides at once: the measurements it delivers, and the reports it makes about itself. This page is the single place that explains what each of those events means, what it takes to open one, what keeps it current, and when it closes.
Everything here happens on its own. There is no switch to turn a check on: each one arms itself for an inverter as soon as the logger actually delivers the readings it needs, and stays quiet on inverters where it cannot judge.
The three families, and their counting rules
Inverter events fall into three families, and each family answers a different question. The rule for how many of them can stand on one machine at a time is different in each — knowing which rule applies is what makes a busy inverter readable.
| Family | The question it answers | How many can stand at once |
|---|---|---|
| Production | Is this inverter delivering the energy it should? | One per inverter. Outage, measurement conflict, no communication and reduced output are a single slot. When the evidence changes, the event is reclassified in place — it is not closed and reopened. |
| Service findings | Is something wearing out that somebody has to go and look at? | One per issue. Elevated temperature, insulation weakening, phase imbalance and efficiency declining are independent. An inverter running hot and losing insulation carries two findings, each schedulable and closable on its own. |
| Device state | What is the machine itself saying about its own condition? | One per mode. A self-derating event stands beside a reduced-output one; a safety alarm stands beside anything. |
Two more events sit outside these families: the energy counter stalled record (a bookkeeping fault, not a production fault) and the device-reported alarm mirror, which is a copy of the manufacturer's own active list and is never judged.
Every inverter event at a glance
| Event | Priority | What opens it | What confirms it | What closes it |
|---|---|---|---|---|
| Inverter production outage | Normal | 3 consecutive five-minute windows of zero output with enough light | The children one level down: they are dark too, or say nothing | 3 producing windows, or the children coming back to life |
| Inverter measurement conflict | Normal | The same zero windows — but the children are producing, or the machine's own energy counter advanced | Decided at the moment of opening, by cross-examining the children | The inverter's own reading recovering |
| Inverter not communicating | Normal | An hour of judged daylight with no readings at all, while its siblings report — or an hour of daylight on a standing Logger cannot reach inverter record | Its children are probed to tell a metering gap from a real stop; the logger's own unreachable report rides along | Telemetry back and producing, or readings in 3 consecutive windows while the logger no longer reports it unreachable |
| Inverter reduced output | Normal | 30 minutes below a tenth of its own expectation, or one audited day at or below 30 % of it | Both tiers use the inverter's own model, not the park average | 3 windows back above 80 %, or 3 recovered days |
| Inverter elevated temperature | Normal | Running 5 K hotter than comparable units on its logger, 5 days out of 7 | One of six paths, from a widening gap under load to the machine's own thermal alarm | 5 consecutive clean days |
| Inverter insulation weakening | Normal | A settled morning reading below 35 % of its peers', 3 days running | Today, only the inverter's own insulation report confirms it | 5 consecutive clean days |
| Inverter phase imbalance | Normal | A daily median current spread of 3 % or more | 4 % held for 7 days, or 3 % with a matching voltage signature | 5 consecutive clean days |
| Inverter efficiency declining | Normal | Two consecutive months of falling conversion efficiency, at least 0.5 pp | Not yet — this one stays an observation | 5 consecutive clean days |
| Observing: … (four twins) | Low | The first stage of each service finding | — (it becomes the confirmed finding) | The evidence going clean, at whatever stage it stands |
| Inverter device fault | Normal | A fault code the device holds for 2 checks, or a warning code it raises twice | The device's own report is the evidence | The claim gone and Mirox having actually looked |
| Logger cannot reach inverter | Low | The logger reporting the machine unreachable while no readings of our own arrive | Two independent silences agreeing — nothing further is weighed | The logger reaching it again and readings flowing, or an hour of daylight handing it over |
| Inverter safety alarm | Normal | A live arc-fault or residual-current report — immediately, day or night | No debounce, no gate | The machine reporting the condition released |
| Inverter protective stop | Normal | The state stopped by protection for 3 consecutive checks | The device's own state word | The state leaving for 3 checks |
| Inverter stopped by command | Low | The state stopped by command for 3 consecutive checks | The device's own state word | The state leaving, or a 6-hour daylight ceiling handing over to an outage |
| Inverter self-derating | Low | A throttling episode held for 3 consecutive checks | One event per inverter, counting its episodes | 3 high-load days with no episode |
| Inverter energy counter stalled | Normal | The lifetime register standing still while power keeps flowing | A sibling on the same logger having advanced meanwhile | The register moving again |
| Inverter fault / warning reported by device | Normal / Low | The manufacturer raising the code | Nothing — this is a mirror | The manufacturer withdrawing the code |
| Component outage summary | High | At least one inverter or combiner box down for 30 minutes | Membership held for 3 checks before joining | 2 checks with nobody left down |
Production events
Exactly one of these four stands on an inverter at a time. They share a single trigger and then split on the evidence.
Inverter production outage
- What it means. The inverter has stopped delivering, under conditions where it should have been delivering. This is the event that costs you energy, and it is the one that feeds the park-level alarm.
- What opens it. Three consecutive five-minute windows in which every sample is at or below zero — roughly a quarter of an hour on a densely-polled park, up to three quarters of an hour where the logger reports every fifteen minutes. Light is checked in three tiers: below 50 W/m² is dark and the streak resets, 50–150 W/m² is marginal and the streak simply pauses, and only above 150 W/m² is a window judged at all. That floor must also have held for the two windows before it. Snow, frost, fog, a binding curtailment cap, a paused logger and a dead parent each veto a window.
- How it is confirmed. At the moment of opening, the components one level below — combiner boxes, or strings where there is no combiner-box level — are read across the whole zero span. If they are dark too, the outage is corroborated. If there is no child data at all, it opens anyway and says so in its reasoning. If a child was producing, you get a measurement conflict instead (below).
- A second route in. An inverter that stops reporting entirely accumulates a clock that ticks only on bright windows while its siblings keep reporting. After an hour of judged daylight, its children decide the verdict: children delivering zeros open an outage; children dark or producing open a no communication event instead.
- What keeps it current. While an outage stands, it carries everything the machine says about itself — every fault code it raises, with a count and a date, and the operating states it reports being in. That block is refreshed on a change, never on a poll: a machine that says nothing costs nothing. It is corroboration only — no code the device raises can open, close or reclassify the outage.
- How it closes. Three consecutive producing windows. There is a second route: children alive for three consecutive windows, because a rebooting inverter registers its string channels about ten minutes before its own production lane comes back.
- Where you see it. A red Outage chip in the Health column, the red icon on the station row, the station's Open issues dialog, and the park's event list.
Inverter measurement conflict
- What it means. The inverter is producing — but its own reading says it is not. This is a data fault, not a production fault, and it is deliberately never counted as lost energy.
- What opens it. The same three zero windows as an outage. The difference is what the cross-examination found: at least one child produced 50 W or more over the zero span, or the inverter's own lifetime energy register advanced over that span by at least three times its demonstrated step. Either witness contradicts the zero, so the zero is the thing that is wrong.
- How it is confirmed. The verdict is fixed at the open. A child series that repeats one non-zero value for six samples or more is a stuck register and does not count as a witness; children that stay above the floor but whose combined net is under a tenth of the parent's expectation are residual metering on a dead bus, and read as an outage rather than a conflict.
- What keeps it current. The same device-report block as the outage.
- How it closes. On the parent's own production recovering. Children coming alive can never close it — producing children are what defines it.
- Where you see it. An orange Measurement conflict chip, the orange station icon, and the station's Open issues dialog.
Inverter not communicating
- What it means. The inverter stopped reporting. Its production is unknown, and unknown is deliberately never counted as a loss — you are not billed for a silence.
- What opens it. An hour of judged bright daylight with no readings at all, while at least one sibling keeps reporting and no parent explains the silence. Its children are then probed: dark children, or children still producing while the parent is silent (a metering gap), both open this event rather than an outage.
- How it is confirmed. By the siblings. A whole logger going quiet is not attributed to an individual inverter.
- What keeps it current. Nothing of the inverter's own arrives — that is the point: the event records when the data stopped and how many bright minutes have passed since. What does arrive is the logger's word. Where the logger reports that it cannot reach the machine, that report rides this event and is refreshed in place — how many separate spells of lost contact, and since when — and the background record that had been carrying it is handed over into this event, which names it as its predecessor. See Logger cannot reach inverter below.
- How it closes. Two routes. Telemetry back and producing — telemetry that comes back carrying a zero is ambiguous, so it reclassifies in place instead, into an outage or a conflict, decided by the same cross-examination. Or on communication alone: readings arriving in three consecutive windows while the logger has stopped reporting the machine unreachable. That second route works in the dark as well, so a machine that answers again at dusk is not held open all night — and it claims nothing about production. Whether the machine is earning is decided by the next window with usable light.
- Where you see it. An amber No communication chip, the amber station icon, and the station's Open issues dialog.
Inverter reduced output
- What it means. The inverter is producing, but far below what its own model prices for the conditions of the moment. A trickle is a fault signature in its own right, which is why a producing window never closes this one.
- What opens it. Two independent tiers. The live tier opens after six consecutive judged windows — about half an hour — below a tenth of expectation. The day tier opens on a single audited day at or below 30 % of expectation.
- How it is confirmed. The live tier is gated harder than an outage: irradiance of at least 300 W/m², the model pricing the inverter at a fifth of its configured capacity or more, no binding curtailment cap, and the machine measurably producing. The day tier needs at least three hours of valid minutes after the curtailment, snow and frost masks, at least a kilowatt-hour of expected energy, and no more than an hour of clipping.
- What keeps it current. The ratio is recomputed every window; the event carries the measured power, the expected power and which expectation lane was used.
- How it closes. Three consecutive windows back at 80 % of expectation or better — but only if the day tier agrees. A machine still flagged on whole-day energy has not recovered because it cleared the bar for a quarter of an hour. The day tier itself needs three consecutive recovered days at 50 % or better.
- Where you see it. A red Reduced output chip, the falling-curve station icon, and the station's Open issues dialog.
Service findings
These four are the "somebody has to go out there" family. The inverter is producing at full output while they stand, and it is counted as producing everywhere on the analysis page. They are work items to schedule, not alarms.
Every one of them runs the same staged chain:
- Observation first. The first stage opens an Observing: … event at Low priority. It is a row in the event list and nothing more — it never puts a state on a machine and never appears in the per-inverter dialog.
- Three judged days open the observation — the shortest streak no single weather artefact or bad day of telemetry can produce. Two of the four judge on their own clock instead: elevated temperature asks for five days out of the last seven, efficiency for two consecutive calendar months.
- Confirmation only when the finding's own corroborating evidence arrives, and each section below names it. The observation closes and the confirmed finding opens in the same step, naming the observation it grew out of. That internal close is bookkeeping and raises no "resolved" notice — the inverter did not get better. Two of the four — insulation weakening and efficiency declining — have no automatic route to confirmation today and deliberately stay at the observation stage.
- Five consecutive clean days close it, at whichever stage it stands.
- "Could not read it" is never "there is nothing." A day the platform could not judge — no model, a dark park, a failed read — holds the finding exactly as it is. It never counts as a clean day.
- A finding never walks back down the chain. Evidence that weakens from confirmed to observing holds the work item; only positive evidence of absence retracts it.
- At least two weeks of stored history is re-derived on every pass — three weeks for the temperature check and four months for the efficiency one — so a restart in the middle of a multi-week defect costs nothing.
- Its numbers are re-posted only when a published figure has moved by 10 % or more, so a standing finding does not churn on drift nobody can act on.
Inverter elevated temperature
- What it means. This inverter runs measurably hotter than comparable units under the same load. The comparison is always against the machines on its own logger block, never the park — several parks carry more than one make under one park identity, and one block legitimately runs 40 K hotter than another.
- What opens it. An excess of 5 K or more over the peer median on five of the last seven evaluated days. It needs at least six comparable inverters, at least three of them in the same load band, and three weeks of temperature history. Load is measured as a 60-minute trailing mean, because inverter temperature lags load by half an hour on some makes and by well over two hours on large centrals.
- How it is confirmed. Six paths, and the event dialog names the one that fired: the gap grows with load (3 K wider between low and high loading, and the unit measurably losing output against its siblings — both, not either); thermal foldback (an already-throttling unit clamping its own temperature, so the gap stops growing — recognised by a dead-flat top held below a cohort that is at its ceiling); hot day after day (5 K on 14 of the last 16 judged days, with a size check so a larger machine cannot read as permanently hot); the machine's own thermal alarm on three judged days; the machine throttling itself on three judged days; and, where none of the others can speak at all, the device's own report alone.
- What keeps it current. The daily excess, the peer median, the number of qualifying days, and the confirm path.
- How it closes. An excess of 2 K or less for five consecutive clean days. The device's own report can never block a close.
- What it does not claim. "Runs hotter than its block" is equally true of a blocked air intake, a hot position in the cabinet row and a probe reading high. The finding asks for the cooling path, the enclosure and the sensor to be checked. It does not assert a failed fan.
- A seasonal note. From November the comparable-load band yields few judged days on most parks, so this is largely a summer instrument.
- Where you see it. A blue Elevated temperature chip in the Health column, its own icon on the station row — folded into the blue wrench when the same inverter carries more than one service item — and the station's Open issues dialog.
Inverter insulation weakening
- What it means. The DC insulation resistance is trending down towards its trip threshold — typically moisture entering a cable, a connector or a module entry.
- What opens it. The ratio of the inverter's settled morning reading (taken around 09:00 local time) to the same-morning median of its peers, below 0.35 for three days. Absolute thresholds are deliberately not used: insulation resistance scales inversely with array size, and on most peer groups the day-to-day swing shared by the whole group is several times larger than the spread between units. Insulation resistance is, first of all, a humidity sensor.
- How it is confirmed. Today, only by the inverter's own word — an insulation condition the machine itself raised on three separately measured mornings, or, for units the peer rule cannot judge at all, three raises or three consecutive checks of a fault-severity insulation code. Confirmation on our own reading is deliberately switched off until the calibration is re-run on a full year's data, planned for around November 2026. Until then, our own evidence holds the finding at the observation stage.
- What keeps it current. The morning ratio, the peer median and the number of qualifying mornings.
- How it closes. A ratio of 0.50 or better on five clean days. Readings above 20 MΩ are treated as "off the top of the scale" and censored; a group publishing one frozen constant is ignored; a reading older than three days does not count. An inverter whose ratio is very high while it produces almost nothing has a disconnected array, not weak insulation, and is vetoed.
- A deliberate cap. At most two findings are opened simultaneously in one peer group — a whole group drifting together is weather, not eight failures.
- Where you see it. A blue Insulation weakening chip in the Health column, its own icon on the station row — folded into the blue wrench when the same inverter carries more than one service item — and the station's Open issues dialog.
Inverter phase imbalance
- What it means. The three AC phases no longer carry the same current, which stresses the grid side and points at one weak phase leg.
- What opens it. The daily median of the per-slot current spread reaching 3.0 %. For scale: across a fleet backtest of more than a thousand inverters, the worst healthy inverter-day came to 1.8 %, and there is an empty gap in the fleet distribution between 1.8 % and 2.0 %.
- How it is confirmed. Either magnitude alone — 4.0 % held for seven consecutive evaluable days — or 3 % together with a matching voltage signature on the same phase. A slot counts only when the machine is loaded to at least 30 % of its own annual peak current, and a day needs a dozen such slots; an inverter so degraded that it never reaches a dozen loaded slots pools three days of slots into one judgement instead, because the most broken machine in the backtest would otherwise never have been judged at all.
- What keeps it current. The daily median spread, the dominant phase, and the day count.
- How it closes. A daily median below 2.0 % for five clean days.
- No device path. No manufacturer's alarm list carries a phase-imbalance condition, so this finding is only ever opened by our own measurement.
- Where you see it. A blue Phase imbalance chip in the Health column, its own icon on the station row — folded into the blue wrench when the same inverter carries more than one service item — and the station's Open issues dialog.
Inverter efficiency declining
- What it means. The DC-to-AC conversion loss is growing beyond what load and temperature explain. Efficiency is judged as a residual against the median of the unit's own neighbours in the same five-minute slots, and that residual against its own history.
- What opens it. Two consecutive calendar months of decline, each at least 0.5 pp, on at least two months of history. Half a percentage point sounds small and is not: within one park the spread between units is typically a tenth to one and a half points, and the month-to-month noise of a single unit is a few hundredths of a point.
- How it is confirmed. It is not, today. This finding stays at the observation stage by design while the record grows long enough to justify escalating it.
- What keeps it current. The monthly efficiency, the decline in percentage points, and the number of declining months. Park-wide common mode is removed first, because absolute efficiency drifts by up to 0.7 pp across a whole park over a fortnight.
- How it closes. The decline reversing within a fifth of a point, on five clean days.
- Where you see it. A blue Efficiency declining chip in the Health column, its own icon on the station row — folded into the blue wrench when the same inverter carries more than one service item — and the station's Open issues dialog.
- Where it is unavailable. The check needs the inverter's published DC power reading. Parks whose loggers do not deliver one are simply not covered, and on some the published DC figure turns out to be the AC figure multiplied by a constant — that is detected from the data itself and the inverter is skipped.
Device-state events
These six come from what the machine says about itself. They are keyed per inverter and per mode, so they stack.
One rule they alone have: a row you close by hand stays closed for 24 hours. Inside that window the platform will not re-open the same mode on the same inverter, and it stops asking. The suppression is keyed by type as well as by component, so closing a self-derating record never silences the same inverter's safety alarm. (This 24-hour respect exists only for this family — a production or service finding re-opens as soon as it re-earns a fresh detection.)
Inverter device fault
- What it means. The inverter reports a fault of its own, in a function Mirox has no measurement for — hardware, firmware, a licence, a configuration problem, an emergency stop, a DC string, a metering fault, or a code no decode table carries yet. It is drawn in service blue, because it stands on a machine that is producing and it is a service item, not a production loss.
- What no longer comes here. What the logger says about reaching the inverter. Those reports have a record of their own now — Logger cannot reach inverter, immediately below — because they are not a fault inside the machine, they are the absence of an answer from it. A battery is the exception: it has none of the other lanes an inverter has, so a battery's communication reports still go to its Battery device fault.
- What opens it. It depends on the severity the manufacturer itself attached. A code the maker calls critical, major, error or fault opens the event after two consecutive checks with the code still standing — about ten minutes. A code the maker calls minor or warning needs a second raise (the device dropped it and put it back up) or one finished day on which the failing part was actually exercised. Anything the maker did not label falls to the cautious warning side. Counting always starts at the first sighting, so a delayed open never loses an occurrence.
- Three gates. Most of a park reporting the same grid word within minutes is a grid fact, not one fault per inverter — that suppresses the opening of an all-grid claim, and only the opening: it never retracts one already standing. Grid classes go to a protective stop instead when — and only when — every class the device raises is a grid one; an inverter tripped by grid protection that also reports a failed fan still owes you the fan. And an untranslatable code opens an event only at fault severity, never at the maker's housekeeping level.
- What keeps it current. One event per inverter, listing every condition the machine currently stands behind, highest severity first, with a count of how often each was raised and how often it was withdrawn.
- How it closes. The claim being gone and Mirox having actually looked. A device that stops repeating its own fault has not been repaired — it has stopped talking about it. See How a withdrawn code is handled below.
- Where you see it. A blue Device fault chip, its own icon on the station row — the blue wrench when the same inverter carries more than one service item — the station's Open issues dialog, and the event list in maintenance blue.
Logger cannot reach inverter (background record)
- What it means. The logger that reads this inverter says it cannot reach it, and Mirox has had no readings of its own from that machine either. Both halves are required: the logger's word alone is a poll that missed, and our own silence alone is what the production events above already judge. It is a background record, not a verdict — nothing is being concluded yet about whether the machine is producing.
- What opens it. The logger reporting the inverter unreachable while our own lane has stayed silent for that machine across the last two windows, with the sun up, the park's own link healthy, and at least one other inverter on the park still delivering. It opens within minutes — long before the hour of daylight a no communication event needs — which is exactly why it is filed quietly. An inverter hidden from the park's component tree opens nothing, and while a production event already stands on the machine no record is opened, refreshed or closed: that event carries the logger's word instead.
- How it is confirmed. It is not weighed any further. Two independent silences agreeing is the entire content of the record.
- What keeps it current. One record per inverter, naming the logger that made the report and counting spells: a machine that drops off and comes back six times in an afternoon has one record with six losses of contact, not six records. It also carries how many of the inverters on that same logger were unreachable in the same poll, so one machine reads differently from a whole logger block.
- How it is promoted. After an hour of daylight standing — daylight only, so a night never advances the clock — it is handed over into a full production event: an Inverter not communicating event, or an Inverter production outage where the components below it are delivering zeros. The record is closed as escalated, the platform's own word for a record taken over rather than resolved, and the new event names it as its predecessor. If that event later closes while the logger still cannot reach the machine, a fresh record opens in its place, naming the closed event as its predecessor.
- How it closes. The logger being able to reach the machine again and the machine's own readings flowing to us again, in three consecutive windows. Either half alone leaves it standing. If the logger stops watching that inverter altogether, or the record reaches its own age ceiling, it closes quietly, saying that nothing recovered.
- Where you see it. In the event list only, at Low priority, with its own label and icon. It deliberately puts no state on the machine: no chip in the Health column, no icon on the station row, no line in the per-inverter dialog, no membership in the component outage summary — and it never notifies you. It is there so that the hours before a verdict are on the record, and so that anyone looking afterwards can see what the logger was saying at the time.
Inverter safety alarm
- What it means. The device reports an arc fault, a latched arc fault or a residual-current condition about itself. These carry fire and shock risk and Mirox has no measurement of its own for any of them.
- What opens it. A single live report. No debounce, no daylight rule, no park-burst gate — an arc fault at two in the morning is still an arc fault.
- How it is confirmed. It is not weighed at all. The device is the only witness, so the device's word is the event.
- What keeps it current. The codes and their counts, exactly as the machine raised them.
- How it closes. Only when the machine reports the condition released, asked of the machine itself. A latched arc that cleared was reset by somebody who walked up to it, and that is the repair. The device merely dropping the code from its list is not.
- Where you see it. A blue Safety alarm chip beside the component's name on the Components page and in the Health column of the analysis inverter tab. It is a state on the machine: an arc fault is something somebody has to go and reset, so it counts on the station row like any other service item — its own icon when it is the only one open, the blue wrench when it is not — and it is listed with the inverter's other open events in the per-inverter dialog. The device-reported alarm mirror still carries the raw code in full beside it.
Inverter protective stop
- What it means. A protection mechanism tripped this inverter. It is not producing, and it may need a manual restart on site.
- What opens it. The inverter's own operating state reading stopped by protection for three consecutive checks, with the sun up. The same park-wide burst gate applies. It is read from the operating state, never from the alarm list.
- How it is confirmed. By the state word persisting; a single poll never opens it.
- What keeps it current. The event carries the episodes the machine reported — each with its start, end and duration, newest first.
- How it closes. The state leaving for three consecutive checks.
- Where you see it. An amber Protective stop chip, and the per-inverter dialog.
Inverter stopped by command
- What it means. This inverter was switched off deliberately — by a person, or by a remote instruction. The output is lost while it stands, but nothing is being claimed about the hardware. It is the one device-state event at Low priority.
- What opens it. The state stopped by command for three consecutive checks with the sun up — unless a curtailment episode covers the inverter's scope, in which case the "switched off" is the curtailment. "We cannot answer whether a curtailment covers this scope" also does not open it.
- How it is confirmed. The state word, over three checks.
- What keeps it current. The reported episodes.
- How it closes. The state leaving for three checks. There is also a ceiling: while a commanded stop stands, the outage detector is held back — but only for six hours of judged bright time (a night never advances that clock). Past the ceiling, a normal production outage opens, carrying the explanation with it.
- Where you see it. A Stopped by command chip, and the per-inverter dialog.
Inverter self-derating
- What it means. The inverter is producing, but throttling itself to protect itself — most often against heat. A machine that folds back is protecting itself, which is a strong sign that a heat problem is real rather than a sensor offset.
- What opens it. The first sustained episode: the state held for three consecutive checks.
- How it is confirmed. It is one overarching event per inverter, held across episodes and carrying an episode count — not one event per afternoon.
- What keeps it current. The episode count and the recorded spells.
- How it closes. Three days on which the machine ran at 55 % of its reference peak or better without an episode, or the elevated-temperature check returning a clean verdict.
- Where you see it. In the event list, and as its own chip beside the component's name on the Components page — styled so the device's word never wears a verdict's colours. It puts no state on the inverter and is not listed in the per-inverter dialog — a throttling inverter is still earning.
Inverter energy counter stalled
- What it means. The inverter keeps reporting power, temperature and everything else, but its lifetime energy register has stopped advancing. Production is still real; only the machine's own record of it is broken.
- What opens it. Not "unchanged for N readings" — that rule is wrong, because these registers store fewer digits as the number grows, so a machine at 300 MWh legitimately stands still for minutes at a time. Instead, the inverter's power is integrated since the counter last moved, and the event opens when that integral exceeds ten times the counter's own demonstrated step. Three floors sit on top: an hour of wall clock, twenty consecutive identical readings while producing, and corroboration from a sibling on the same logger that did advance in the meantime — so a whole logger freezing is never blamed on individual inverters.
- How it is confirmed. By the sibling. An inverter whose logger does not declare how its counter behaves is never judged at all.
- What keeps it current. The frozen value, the unrecorded energy, and how long it has stood still.
- How it closes. The register moving again.
- Where you see it. A Counter frozen chip and the per-inverter dialog. While it stands, production is credited from measured power instead, and a separate Feed-in energy estimated record on the park says exactly which share of the park's energy that is.
Device-reported alarms and warnings
Separately from everything above, Mirox keeps a plain mirror of the manufacturer's own active alarm list: one record per inverter, per code, stored exactly as the device sent it. It reads as Inverter fault reported by device when the maker classed the code as a fault, and Inverter warning reported by device when it did not.
- It is never judged. No threshold, no debounce, no gate. A device can raise a warning while feeding at full output.
- It is never a health state. The mirror puts nothing on the analysis page's Health column and moves no availability figure. It does appear as its own chip beside the component's name on the Components page, styled so the device's word never wears a verdict's colours.
- The device's withdrawal is the close. The complete active list is read on every poll: a raise opens a record, a repeat updates its count in place, and the code leaving the list closes it. Nothing here weighs the report against our measurements.
- A class change is a new record. If the maker's table reclassifies a code from warning to fault, the warning record closes and a fault record opens in its place.
Batteries get the same treatment (Battery fault / warning reported by device), and a battery's own conditions all go to a single Battery device fault — a battery has none of the service lanes an inverter has.
Component outage summary
The one park-level roll-up, and the only inverter-related event that pages by default.
- What opens it. At least one inverter or combiner box confirmed down for half an hour — either in outage or not communicating. Components with a measurement conflict or reduced output never join: they are demonstrably producing.
- What keeps it current. Members join after qualifying for three consecutive checks and leave immediately. The age of the alarm anchors on the earliest member's own event and is never lowered afterwards.
- How it closes. Two consecutive checks with nobody left down. A summary you close by hand is respected for six hours before it can be raised again.
- How it notifies. On the first open and the true recovery close only. Every membership change in between is silent — you are not paged again because a fourth inverter joined a list you already know about.
The device's own report: two roles
Every alarm an inverter raises is used twice, for two different questions.
Role one — evidence for Mirox's own findings. The code is translated into a standard vocabulary and handed to the checks that already watch that inverter's measurements. A thermal code feeds the elevated-temperature finding; an insulation code feeds the insulation finding. In that role the machine's word corroborates a trend the platform already sees — it can never open a chain from nothing, and it can never block a clean verdict. The one exception is for inverters where our own method is structurally blind (a park with no cabinet temperature, a logger with too few inverters to compare): there, and only there, the device's report opens the observation on its own.
Role two — the device's own finding. Everything the platform has no measurement for — hardware, firmware, licence, configuration, emergency stop, DC string, metering, and untranslatable codes — becomes an Inverter device fault: a blue service item standing on an inverter that is still producing. Communication is no longer on that list for an inverter: what the logger reports about reaching the machine goes to that inverter's own Logger cannot reach inverter record. For a battery it stays on the list, because a battery has only the one lane.
One code drives exactly one lane, so one fact never gets two lifecycles. Thermal codes go to the temperature finding and never open a device fault; insulation codes go to the insulation finding; arc and residual-current codes go to the safety alarm; grid codes go to a protective stop while the machine reports being tripped, and to a device fault otherwise; a report that the logger cannot reach the machine goes to the reachability record, and from there into a no-communication event. Routine self-tests reach nothing at all — they are quoted in the reasoning of other events when they explain the situation, and nowhere else.
The hand-over into an outage or a no-communication event, and back
While the inverter is producing and answering, a standing device-state record and a production event are two separate records. The moment Mirox's own measurement says that inverter stopped producing — or stopped answering altogether — they stop being two.
- The production event takes the report over. The standing record is closed into the new event — an outage takes over the device fault, a no-communication event takes over the reachability record. Either close is recorded as escalated, the platform's own word for a record that was taken over rather than resolved: no "resolved" notice, no repair claimed. The new event names the closed record as its predecessor, so the history stays joined up.
- The event then carries every code the machine raises — all of them, thermal and insulation and safety included, each with its count, its severity, its wording and its dates; a no-communication event carries the logger's unreachable report the same way, with its spell count. Their own findings are untouched: the same thermal code appearing on both the outage and the temperature finding is a listing, not a second lifecycle.
- While the event stands, no new device-state record opens on that inverter — neither a device fault nor a reachability record. The counts keep accruing underneath, so nothing a later decision rests on is lost.
- The codes are corroboration, never a cause. No code the device raises can open, close or reclassify an outage. An outage on an inverter that reports nothing at all stands exactly as it would otherwise. The no-communication event is the single exception, and only on the question of reaching the machine: the logger's unreachable report is what promotes it early, and a live one holds it open against the communication-only close. Nothing the device says decides whether the machine is producing.
- When the event closes, a successor record opens immediately if a claim that would open one is still standing — a device fault after an outage, and a fresh reachability record after either event where the logger still cannot reach the machine — naming the closed event as its predecessor and continuing the counts. A claim that cleared while the event stood opens nothing and leaves only its entry on the closed event.
A machine reporting that it feels fine while producing nothing is not a recovery: the outage still closes on measured production alone, exactly as it always did.
How a withdrawn code is handled
A code the device drops does not close a device fault. It goes on hold, and only four things release it:
- An independent check says the condition is gone — the temperature verdict for a thermal code, the insulation verdict for an insulation code, the string lane for a DC string code, the counter for a metering code, and, for the communication codes that still reach this lane — a battery's — the standing reachability entry the platform keeps for that device, which is a row in the device-report ledger rather than an event of its own.
- Quiet days on which the failing part was actually exercised. What counts as a real chance depends on the class, and so does the number: three such days for thermal (a day on which the machine reached half of what it has been seen to do), insulation (a morning with a settled reading), DC string, the grid classes and metering; five for the safety classes; two for a communication code or an untranslatable one, where "the device answered at all" is all that can honestly be demanded.
- The class's own withdrawal being the repair — a latched arc fault, a hardware fault, firmware, a licence, a configuration fault, an emergency stop. Somebody had to walk up to those and reset them. This applies only to codes from the device's alarm list: leaving an operating state is not a repair, it is the next state.
- The ceiling — 90 days since the code was first seen, or a year for a safety class, so a grid code that recurs every dusk cannot stand forever.
A withdrawal is only believed after the code has been absent for two consecutive checks. A list that flickers for a single poll has withdrawn nothing.
Where you see all of this
The station row
Each station in Analysis summarises its inverters, not its issues. Every inverter with something open appears under exactly one glyph:
| Icon | Counts |
|---|---|
| A service item's own icon — elevated temperature, insulation weakening, phase imbalance, efficiency declining, device fault, safety alarm | Inverters whose only open service item is that one |
| Blue wrench | Inverters carrying two or more open service items |
| Amber | Inverters delivering no measurement data |
| Orange | Inverters whose only open service item is a measurement conflict |
| Red, falling curve | Inverters with reduced output |
| Red | Inverters in outage |
The service items are the four confirmed service findings, a standing device fault, a safety alarm and a measurement conflict. One of them on an inverter is drawn as itself — the measurement conflict keeps its familiar orange gauge rather than turning blue — and two or more collapse into the single blue wrench, so the wrench's number counts inverters carrying several items, never the items themselves.
An outage never joins them. An inverter that is running hot and dark shows the temperature icon and the red outage icon; one that is hot, imbalanced and dark shows the wrench and the red outage icon. The red glyph says the machine is dark today, the service glyph says somebody still has to go out to it.
Clicking any icon on the row — a single finding, the wrench, the orange gauge or one of the production icons — opens the same Open issues dialog: every inverter of the station that has anything open at all, each with its own events. The icon you clicked only decides the tooltip you had just read; it no longer narrows the list, which is why the dialog is usually longer than the number on the icon. The wrench's tooltip breaks its inverters down in a fixed order — elevated temperature, insulation weakening, phase imbalance, efficiency declining, Inverters reporting a fault of their own, safety alarm, measurement conflict — and closes with how many inverters need a service visit in total.
The icons run left to right calmest first — the service lane, then no measurement data, the measurement conflict, reduced output and last the outage — so your eye lands on what costs energy last. The service lane never touches the producing count, so its numbers are always shown.
The per-inverter dialog
Clicking any icon on the station row opens the same dialog, titled Open issues. It lists every inverter of the station that has an open issue at all, and every listed inverter carries its full list of open events under Open events — so an operator who clicked the wrench still sees the outage standing on the machine next to it. The icon no longer decides which inverters are listed; it only decided the tooltip you read before clicking, which is why the total in the dialog is usually higher than the number on the icon that opened it.
Each event is one line: its icon in the colour of the state it puts the machine in, its name, and how long it has been open. Clicking the line opens that event's own window on top of the list — what was detected, the codes the device reported with their Live badge, the timestamps; closing it puts you back on the list exactly where you left it. Events read out in a fixed order within each inverter: the production event first, then a protective stop or commanded stop, then the service findings, then the device fault and the safety alarm, then a frozen counter. Inverters are sorted naturally, so "WR 2" comes before "WR 10".
Three things are deliberately not listed here: the four Observing: … rows (they are not a condition on a machine), the self-derating record (a throttling inverter is still earning, and the device mirror already carries that code in full), and the Logger cannot reach inverter record (a background note, not a verdict).
One exception remains: on a station whose production is counted in combiner boxes, the four production icons count boxes and drill down to them instead. Every other icon opens the Open issues dialog, on every station — a service item is always a claim about a machine.
The day chart
The day chart on the analysis page speaks the same icon vocabulary. Beside each component in the legend, and in the tooltip for the moment you are hovering, every finding is drawn with its own icon — and a component carrying several open service items is drawn with the blue wrench, exactly the rule the station row follows. Hovering an icon lists the events behind it.
The legend lists every connected component of the selected station, not only the ones with a curve. A component that delivered no measurements for the day is listed as well, dimmed and not clickable, with an italic no data where its energy figure would be — so a silent string reads as a gap in the plant instead of quietly disappearing from the page.
The event dialog
Opening any event — from the event list, or by clicking its line in the station's Open issues dialog, which opens it on top of that list — shows what was detected, since when, and why it is open. Where the machine had something to say, two more sections appear: Device reports and Reported operating states.
- The codes table — columns Code, Count, Severity and Message. Severity is tinted: red for fault, alarm, error, critical and major; amber for warning and minor. The device's own severity word is what you see; the shared decode table fills in only for makers that attach none.
- A Live badge marks a code the device is still raising, as opposed to one it has withdrawn and that is being held. Where neither the report nor the counts can settle the question, the badge is withheld rather than guessed.
- Four rows at rest, then Show all (N) expands into a scrolling box. A very long list is capped, with +N further codes telling you how many were left out.
- Reported operating states — the same table treatment for what the machine said it was doing, with each spell's start, end and duration. Only states worth acting on are recorded: idle, producing and unknown are not, and "capped externally" is rolled up rather than listed, because it is the exonerating word and would otherwise drown the list that exists to show a fault.
Code text and severity are resolved when you open the event, not frozen at the moment it was created — so a correction to a decode table reaches events that are already in your history.
Notifications
Only the Component outage summary pages you by default. It is the High-priority roll-up, and it pushes on the first open and the true recovery close.
Everything else on this page is deliberately quiet. The individual production outage is registered but sits below every role's default threshold; the service findings are work items to schedule rather than alarms; the device-state and device-reported events stay silent until dedicated wording exists for them, because a generic notification would page you with a raw manufacturer code and no guidance. You can lower your own threshold in your notification settings if you want more.
By manufacturer
The machinery is the same for every make — nothing above branches on a vendor, a code number or a manufacturer's severity word. What differs is what the device gives it.
- Does the device attach its own severity? Huawei (SmartLogger web interface), SMA (both the Data Manager's Error/Warn level and the Sunny Central gateway's warning/error field), Sungrow (the fault list's own level word, wherever an entry states one) and the battery families do. Fronius does not — and neither does a Sungrow entry that states no readable level — so there the shared decode table supplies the word.
- Is there an alarm list at all? Huawei, SMA (both routes), Fronius and Sungrow deliver one. Zebotec plant controllers deliver an operating state only — no alarm list — so no device fault, no code table and no code block on an outage is produced for them.
- What an unknown code shows. Huawei shows the logger's own alarm name; SMA's manager shows the manager's own sentence; the Sunny Central shows the firmware's message tag; Sungrow shows the logger's own fault name; Fronius shows a bare number for codes not yet transcribed, classed as untranslatable at warning severity, so they open nothing. Coverage differs a lot: Huawei's complete official list is carried, while for the SMA Data Manager only a handful of its several thousand message tags are classed — the rest are untranslatable and open a blue device fault at Error severity and nothing at Warn. There is no thermal, insulation or safety tag in that family at all, so those findings and the safety alarm cannot be reached from a Data Manager.
- A wording note. Decoded alarm texts appear in your interface language. Rows that come from an inverter's operating state rather than its alarm list are shown in English in every language.
If an unknown code matters to you, send the number, the manufacturer and the inverter model to support or open a ticket, and it will be added for everyone.
Related Features
- Inverter Status Codes — the operating status every inverter reports about itself, and how it is decoded
- Component States — the Digital Twin's own per-slot classification of every component
- Events — the full event catalogue, priorities, statuses and permissions
- Loss Detection — how the energy behind an outage is quantified and attributed
- Power Limits and Curtailment — why a capped inverter is not a fault
- Digital Twin — the analysis engine behind the production events
- Tickets — where the work to resolve a finding is tracked