namespace InnovEnergy.App.Backend.Services;
///
/// Static knowledge base for Sinexcel and Growatt alarms.
/// Provides pre-defined diagnostics without requiring Mistral API calls.
/// Updated by generate_alarm_translations.py after the review campaign.
///
public static class AlarmKnowledgeBase
{
public static DiagnosticResponse? TryGetDiagnosis(string alarmDescription)
{
if (string.IsNullOrWhiteSpace(alarmDescription)) return null;
var normalized = alarmDescription.Trim();
if (SinexcelAlarms.TryGetValue(normalized, out var s)) return s;
if (GrowattAlarms.TryGetValue(normalized, out var g)) return g;
var lower = normalized.ToLowerInvariant();
foreach (var kvp in SinexcelAlarms) if (kvp.Key.ToLowerInvariant() == lower) return kvp.Value;
foreach (var kvp in GrowattAlarms) if (kvp.Key.ToLowerInvariant() == lower) return kvp.Value;
return null;
}
// ── Sinexcel Alarms ──────────────────────────────────────────────────────
private static readonly IReadOnlyDictionary SinexcelAlarms = new Dictionary
{
["AbnormalGridVoltage"] = new()
{
Explanation = "The inverter has detected that the grid voltage is outside the allowed range. The system requires manual intervention to restore operation.",
Causes = new[] { "Voltage fluctuations or instability in the power grid",
"Poor or loose grid connection at the inverter terminals",
"Issues with the local transformer",
"High load demand in the local grid" },
NextSteps = new[] { "Check the grid voltage with a multimeter at the inverter terminals",
"Ensure all grid connections are tight and undamaged",
"Contact your power provider if the grid voltage remains abnormal",
"Restart the inverter after the issue is resolved" }
},
["AbnormalGridFrequency"] = new()
{
Explanation = "The inverter has detected that the grid frequency is outside the allowed range (typically 50 Hz or 60 Hz ± tolerance). The system will not operate until the frequency returns to normal.",
Causes = new[] { "Grid instability or disruption from the power provider",
"Generator frequency drift if one is being used",
"Rapid load changes in the local grid" },
NextSteps = new[] { "Check if the grid frequency is stable",
"If using a generator, ensure its frequency matches the inverter specifications",
"Wait for the grid to stabilize, then restart the inverter" }
},
["InvertedSequenceOfGridVoltage"] = new()
{
Explanation = "The order of the three power phases from the grid is incorrectly connected. The system cannot operate safely.",
Causes = new[] { "Incorrect wiring of the grid phases (L1, L2, L3) during installation",
"Later changes to the wiring without checking the phase sequence" },
NextSteps = new[] { "Safely shut down the entire system before touching any wiring",
"Swap two of the three phase wires at the grid connection to correct the order",
"Turn the system back on and check if the warning has cleared" }
},
["GridVoltagePhaseLoss"] = new()
{
Explanation = "One or more phases of the three-phase grid connection are missing. The inverter cannot safely operate with an incomplete three-phase supply.",
Causes = new[] { "Blown fuse in one of the grid phases",
"Loose or disconnected phase wire at the inverter terminals or distribution box",
"Tripped phase circuit breaker in the grid",
"Cable damage interrupting a phase" },
NextSteps = new[] { "Check all three phase connections at the inverter input terminals",
"Inspect fuses and circuit breakers for each phase",
"Examine cables for visible damage or loose connections",
"Restore the missing phase and restart after repairs" }
},
["AbnormalGridCurrent"] = new()
{
Explanation = "The grid current is abnormal, which may indicate overcurrent or an imbalance between phases.",
Causes = new[] { "Short circuit or wiring fault on the grid side",
"System load exceeding capacity",
"Faulty current sensor providing incorrect readings",
"Ground fault causing current leaks" },
NextSteps = new[] { "Check for short circuits in the wiring and on the load side",
"Reduce the system load and see if the warning disappears",
"Inspect the connections and operation of the current sensor",
"Fix the underlying issue, then restart the inverter" }
},
["AbnormalOutputVoltage"] = new()
{
Explanation = "The inverter’s output voltage is outside the allowed range, which may affect connected devices and indicates a fault.",
Causes = new[] { "Internal inverter control errors",
"Overloading at the output",
"Grid voltage affecting output regulation" },
NextSteps = new[] { "Check all connected devices and disconnect any that may be overloading the system",
"Ensure the inverter’s output voltage settings match your installation requirements",
"Turn the inverter off and on again; if the alarm persists, contact a technician" }
},
["AbnormalOutputFrequency"] = new()
{
Explanation = "The inverter’s output frequency is unusual, which may affect sensitive devices.",
Causes = new[] { "Internal control errors affecting frequency regulation",
"Large or sudden load changes altering the frequency" },
NextSteps = new[] { "Reduce the connected load and check if the frequency stabilizes",
"Turn the inverter off and on again; if the problem continues, contact a technician" }
},
["AbnormalNullLine"] = new()
{
Explanation = "The neutral line connection is abnormal. A missing or damaged neutral line can cause voltage imbalance and dangerous conditions.",
Causes = new[] { "Loose or disconnected neutral line connection at the inverter or distribution board",
"Damaged or broken neutral line",
"Incorrect wiring during installation" },
NextSteps = new[] { "Safely turn off the system before checking the wiring",
"Inspect all neutral line connections at the inverter and distribution board",
"Fix any wiring issues found and only restart the system after confirming correct connections" }
},
["AbnormalOffGridOutputVoltage"] = new()
{
Explanation = "The backup (off-grid) output voltage is abnormal. Devices connected to the backup output may not receive the correct voltage.",
Causes = new[] { "Overloading at the backup output exceeding the inverter’s capacity",
"Internal inverter hardware issues",
"Battery voltage too low to maintain a stable output voltage" },
NextSteps = new[] { "Disconnect or reduce the load on the backup output",
"Check the battery’s charge level and recharge if necessary",
"Turn the inverter off and on again; if the problem persists, contact a technician" }
},
["ExcessivelyHighAmbientTemperature"] = new()
{
Explanation = "The temperature around the inverter is too high. The inverter may reduce output power to protect itself from heat damage.",
Causes = new[] { "Poor ventilation around the inverter",
"High ambient temperature (heatwave, summer heat)",
"Direct sunlight heating the inverter casing",
"Other nearby devices generating excessive heat" },
NextSteps = new[] { "Improve air circulation and ventilation around the inverter",
"Provide shade if the inverter is installed outdoors or in direct sunlight",
"Consider adding forced ventilation (a fan) if the inverter is in an enclosed space",
"The inverter will recover automatically once the temperature drops to a safe level" }
},
["ExcessiveRadiatorTemperature"] = new()
{
Explanation = "The inverter’s heatsink is too hot because heat is not being properly dissipated.",
Causes = new[] { "Clogged or blocked vents prevent heat from escaping",
"Cooling fan failure reduces airflow",
"High ambient temperature",
"Overloading generates excess heat" },
NextSteps = new[] { "Clean the vents and dust filters—dust buildup is a common cause",
"Check if the cooling fan is running (listen for fan noise during operation)",
"Temporarily reduce the load to lower heat generation" }
},
["PcbOvertemperature"] = new()
{
Explanation = "The inverter’s circuit board (PCB) has reached an excessively high temperature.",
Causes = new[] { "Inadequate cooling or poor ventilation inside the unit",
"High ambient temperature affects internal components",
"Excessive power output over an extended period" },
NextSteps = new[] { "Improve ventilation around the inverter",
"Check if the cooling fan is working properly",
"Let the inverter cool down before restarting it" }
},
["DcConverterOvertemperature"] = new()
{
Explanation = "The inverter’s DC converter section is overheating.",
Causes = new[] { "High charge or discharge current over a prolonged period",
"Poor cooling or clogged vents",
"High ambient temperature in the installation area" },
NextSteps = new[] { "Temporarily reduce the current flow through the system",
"Improve ventilation and check the fan’s operation",
"Allow cooling before restarting the inverter" }
},
["InverterOvertemperatureAlarm"] = new()
{
Explanation = "The inverter’s temperature is rising to dangerous levels, warning of an impending thermal shutdown.",
Causes = new[] { "Prolonged overload of output power",
"Poor ventilation traps heat around the inverter",
"Cooling fan failure",
"High ambient temperature in the installation area" },
NextSteps = new[] { "Immediately reduce the connected load",
"Check if the cooling fans are running and vents are clear",
"The inverter will recover once cooled; fix the issue before fully restarting" }
},
["InverterOvertemperature"] = new()
{
Explanation = "The inverter has overheated and the protective shutdown was triggered.",
Causes = new[] { "Sustained overload condition generates excessive heat",
"Cooling system failure (clogged vents, faulty fan)",
"Extreme ambient temperatures" },
NextSteps = new[] { "Let the inverter cool completely before attempting a restart",
"Check the fans and ensure all vents are clear",
"Reduce system load and improve cooling before restarting the inverter" }
},
["DcConverterOvertemperatureAlarm"] = new()
{
Explanation = "The DC converter temperature alarm is active – the temperature is approaching the shutdown threshold.",
Causes = new[] { "High power throughput for an extended period",
"Inadequate cooling or blocked ventilation slots" },
NextSteps = new[] { "Temporarily reduce power flow to allow cooling",
"Check the fan is working and clear any ventilation blockages",
"Let the temperature drop, then restart the inverter" }
},
["InsulationFault"] = new()
{
Explanation = "An insulation fault has been detected, indicating possible current leakage to earth. This is a safety-critical condition that must be investigated before resuming operation.",
Causes = new[] { "Damaged cable insulation on PV, battery, or grid cables",
"Moisture or water ingress in cable connections or enclosures",
"Insulation failure of a component in the inverter",
"Earth fault in the PV array – common after storm damage" },
NextSteps = new[] { "Do not touch the system – insulation faults can cause electric shocks",
"Safely switch off the system at all isolation points",
"Check all cables for visible insulation damage, especially in weather-exposed areas",
"Perform an insulation resistance test on PV strings and wiring",
"Repair damaged insulation before restarting the system" }
},
["LeakageProtectionFault"] = new()
{
Explanation = "The earth leakage or residual current protection has tripped. The leakage current to earth has exceeded the safe threshold.",
Causes = new[] { "Earth fault somewhere in the system wiring",
"Damaged cable insulation allowing current to leak to earth",
"Moisture in cable connectors or junction boxes",
"Faulty RCD or RCBO protective device" },
NextSteps = new[] { "Switch off the system before inspection",
"Check for earth faults by inspecting all cable connections and insulation",
"Look for moisture in connectors, junction boxes, and cable glands",
"Fix the fault, then restart the system" }
},
["AbnormalLeakageSelfCheck"] = new()
{
Explanation = "The inverter’s leakage current self-test failed during startup.",
Causes = new[] { "Fault in the self-test circuit inside the inverter",
"An actual earth fault in the system",
"Malfunction of the leakage current sensor" },
NextSteps = new[] { "Safely switch off and check the system’s grounding connections",
"Inspect wiring for insulation damage that could cause leakage currents",
"If the wiring is intact, the inverter’s internal sensor may be faulty – contact service" }
},
["PoorGrounding"] = new()
{
Explanation = "Poor or inadequate earthing has been detected. Proper earthing is essential for safety and lightning protection.",
Causes = new[] { "Loose earth connection at the inverter",
"Corroded or oxidized earth terminal",
"Excessive resistance in the earthing cable due to soil conditions or undersized cable",
"Missing or disconnected earth wire" },
NextSteps = new[] { "Safely switch off and check all earth connections at the inverter",
"Clean corroded terminals and tighten all earth connections",
"Measure the earthing resistance and compare it with the installation specification",
"Repair the earthing, then restart the inverter" }
},
["FanFault"] = new()
{
Explanation = "The cooling fan is not working properly or has failed. Without sufficient cooling, the inverter will overheat and shut down.",
Causes = new[] { "The fan motor is faulty and no longer spins",
"Fan blades are blocked by dirt or foreign objects",
"The fan power connection is loose or disconnected",
"A fault in the fan control system" },
NextSteps = new[] { "Check the fan and see if it spins when the inverter is running",
"Remove any obstructions from the fan blades",
"Ensure the fan power connection is securely attached",
"Replace the fan if it does not work—do not operate the inverter without cooling" }
},
["AuxiliaryPowerFault"] = new()
{
Explanation = "The internal auxiliary power supply in the inverter has failed. This supply powers the control electronics.",
Causes = new[] { "Failure of a component in the internal power supply",
"An issue with the input voltage affecting the auxiliary supply",
"Failure of an electronic component on the control board" },
NextSteps = new[] { "Turn off the inverter, wait 30 seconds, and turn it back on",
"If the alarm persists after restarting, the auxiliary power supply likely needs replacement—contact a service technician" }
},
["ModelCapacityFault"] = new()
{
Explanation = "The inverter has detected a mismatch between model or capacity settings and the hardware.",
Causes = new[] { "Incorrect model settings during commissioning",
"Firmware version is not compatible with the hardware",
"Hardware components were replaced without updating the settings" },
NextSteps = new[] { "Check the inverter’s model settings in the configuration menu",
"Ensure the firmware version is compatible with this hardware revision",
"Contact your installer or service team to correct the settings, then restart" }
},
["AbnormalLightningArrester"] = new()
{
Explanation = "The surge protection device (SPD/lightning arrester) has either failed or been triggered by a voltage surge.",
Causes = new[] { "A lightning strike or voltage surge activated and possibly damaged the SPD",
"The SPD component has reached the end of its lifespan and failed",
"Wiring fault in the SPD" },
NextSteps = new[] { "Check the SPD status indicator (most SPDs have a visual fault indicator)",
"Replace the SPD cartridge if it has been triggered or shows a fault",
"Restart the inverter after replacement" }
},
["IslandProtection"] = new()
{
Explanation = "Islanding protection is active—the inverter has disconnected from the grid to prevent feeding power into a dead grid. This is a safety feature.",
Causes = new[] { "Power outage in your local grid supply",
"Grid voltage or frequency is outside permitted limits",
"Intentional grid disconnection by the utility provider" },
NextSteps = new[] { "Wait for the grid supply to be restored and stabilized",
"The inverter will automatically reconnect and resume normal operation once the grid is healthy",
"No action is needed unless the outage persists" }
},
["Battery1NotConnected"] = new()
{
Explanation = "Battery 1 is not detected or connected. The inverter cannot find the battery on the DC bus.",
Causes = new[] { "Battery disconnect switch is turned off",
"Loose or disconnected battery cables at the inverter or battery terminals",
"Battery BMS has shut down the battery due to a protection event",
"Battery fuse is blown" },
NextSteps = new[] { "Check the battery disconnect switch and ensure it is turned ON",
"Inspect battery cable connections at both the inverter and battery terminals",
"Check the battery BMS status indicator for error codes",
"Inspect and replace the fuse if blown, then restart the inverter" }
},
["Battery1Overvoltage"] = new()
{
Explanation = "Battery 1 voltage is too high. Charging has been limited or stopped to protect the battery.",
Causes = new[] { "Battery is being charged beyond its maximum voltage level",
"BMS fault causing excessive voltage",
"Incorrect battery voltage or capacity settings in the inverter",
"Cell imbalance causing some cells to overcharge" },
NextSteps = new[] { "Check the battery’s state of charge and current voltage",
"Review the battery charge voltage settings in the inverter configuration",
"Check the BMS operation and any BMS error indicators",
"Resolve the underlying cause and then restart the inverter" }
},
["Battery1Undervoltage"] = new()
{
Explanation = "Battery 1 voltage is too low. Discharging has been limited or stopped to protect the battery from deep discharge.",
Causes = new[] { "Battery has been deeply discharged",
"Failure of an individual battery cell, reducing overall capacity",
"BMS shutdown due to low-voltage protection",
"High load is draining the battery faster than it is being charged" },
NextSteps = new[] { "Allow the battery to recharge from solar or grid power",
"Check for unusually high loads consuming excessive power",
"Inspect battery health—older batteries may no longer hold a charge",
"Resolve the underlying cause and then restart the inverter" }
},
["Battery1DischargeEnd"] = new()
{
Explanation = "Battery 1 has reached its minimum state of charge (discharge endpoint). The system will stop discharging to protect the battery.",
Causes = new[] { "Battery has been fully discharged to the configured state-of-charge limit",
"High power consumption exceeding available solar or grid charging" },
NextSteps = new[] { "Wait for the battery to recharge from solar or grid power",
"Consider reducing nighttime power usage to preserve battery capacity",
"This alarm will clear automatically once sufficient charge is restored" }
},
["Battery1Inverted"] = new()
{
Explanation = "Battery 1 polarity is reversed. Operating with reversed polarity can cause severe damage to the inverter and battery.",
Causes = new[] { "Battery cables were connected with reversed polarity during installation",
"Installation error—positive cable connected to the negative terminal or vice versa" },
NextSteps = new[] { "IMMEDIATELY shut down the entire system—do not attempt to charge or discharge",
"Disconnect the battery cables carefully after powering off",
"Reconnect with correct polarity: positive cable to positive (+) terminal, negative cable to negative (−) terminal",
"Check for damage to cables, fuses, or the inverter before restarting the system" }
},
["Battery1OverloadTimeout"] = new()
{
Explanation = "Battery 1 operated under overload conditions for too long and triggered its protection function.",
Causes = new[] { "Continuous high load exceeding the battery’s discharge rating",
"Battery is undersized for the connected load",
"Battery aging has reduced its available power" },
NextSteps = new[] { "Reduce the system’s total load",
"Check if the battery is properly sized for peak load demands",
"Fix the issue and then restart the inverter" }
},
["Battery1SoftStartFailure"] = new()
{
Explanation = "Battery 1 failed to complete the soft start sequence (pre-charge phase) during power-up.",
Causes = new[] { "Fault in the pre-charge circuit preventing a controlled start",
"Significant voltage difference between the battery and DC bus",
"Issue with the contactor or relay in the battery connection path" },
NextSteps = new[] { "Check the battery voltage and compare it with the DC bus voltage",
"Verify that the pre-charge circuit and contactors are functioning correctly",
"Fix the issue and then restart the inverter" }
},
["Battery1PowerTubeFault"] = new()
{
Explanation = "Battery 1’s power electronics (IGBT or MOSFET transistors) have failed, requiring professional service.",
Causes = new[] { "Power semiconductor (IGBT/MOSFET) failed due to overload",
"Damage from overcurrent or short circuit",
"Manufacturing defect that developed over time" },
NextSteps = new[] { "Do not attempt to restart the system",
"Contact a qualified service technician—this requires internal hardware repair or replacement",
"Do not operate the system until the fault is professionally repaired" }
},
["Battery1InsufficientPower"] = new()
{
Explanation = "Battery 1 cannot meet the current load demand.",
Causes = new[] { "Battery charge level is too low",
"Load demand temporarily exceeds the battery’s maximum discharge power",
"Battery capacity has decreased due to aging" },
NextSteps = new[] { "Wait for the battery to charge from PV or the grid",
"Reduce load if possible when battery charge is low",
"This alarm should clear automatically once the battery is sufficiently charged" }
},
["Battery1BackupProhibited"] = new()
{
Explanation = "Battery 1 is currently not allowed to provide backup power, usually due to a BMS protection state.",
Causes = new[] { "Battery BMS has activated a protection mode preventing discharge",
"Battery is in maintenance or calibration mode",
"Battery charge is below the minimum level required for backup operation" },
NextSteps = new[] { "Check the BMS status and error indicators",
"Charge the battery above the minimum state of charge (SOC) threshold for backup",
"Resolve BMS issues and then restart the inverter" }
},
["Battery2NotConnected"] = new()
{
Explanation = "Battery 2 is not detected or connected. The inverter cannot find the second battery on the DC bus.",
Causes = new[] { "Battery 2 disconnect switch is turned off",
"Loose or disconnected battery cables at the inverter or battery terminals",
"Battery 2 BMS shut down due to a protection event",
"Battery 2 fuse is blown" },
NextSteps = new[] { "Check if the Battery 2 disconnect switch is set to ON",
"Inspect the battery cable connections at the inverter and battery terminals",
"Check the Battery 2 BMS status for error codes",
"Inspect and replace the fuse if blown, then restart the inverter" }
},
["Battery2Overvoltage"] = new()
{
Explanation = "Battery 2 voltage is too high. Charging has been limited or stopped to protect the battery.",
Causes = new[] { "Battery 2 is being charged beyond its maximum voltage",
"BMS malfunction causing high voltage",
"Incorrect battery voltage settings in the inverter" },
NextSteps = new[] { "Check the charge level and voltage of Battery 2",
"Review the charging settings in the inverter configuration",
"Check the BMS function and any error indicators, then restart" }
},
["Battery2Undervoltage"] = new()
{
Explanation = "Battery 2 voltage is too low. Discharging has been limited to protect the battery from deep discharge.",
Causes = new[] { "Battery 2 has been deeply discharged",
"Cell failure reducing overall capacity",
"BMS undervoltage protection activated" },
NextSteps = new[] { "Allow Battery 2 to recharge from PV or grid power",
"Check battery health—older batteries lose capacity over time",
"Resolve the issue and restart the inverter" }
},
["Battery2DischargeEnd"] = new()
{
Explanation = "Battery 2 has reached its minimum charge level. Discharging has stopped to protect the battery.",
Causes = new[] { "Battery 2 was fully discharged to the configured state-of-charge (SOC) limit",
"High power consumption exceeding available charge" },
NextSteps = new[] { "Wait for Battery 2 to recharge from PV or grid power",
"This alarm will clear automatically once sufficient charge is restored" }
},
["Battery2Inverted"] = new()
{
Explanation = "Battery 2 polarity is reversed. This is a dangerous condition and must be corrected immediately.",
Causes = new[] { "Battery 2 cables are connected with reversed positive and negative polarity",
"Installation error during initial wiring" },
NextSteps = new[] { "Immediately shut down the entire system",
"Carefully disconnect Battery 2 cables after power is off",
"Reconnect the cables with correct polarity and check for damage before restarting the system" }
},
["Battery2OverloadTimeout"] = new()
{
Explanation = "Battery 2 has been operating under overload for too long.",
Causes = new[] { "Continuous high load exceeding Battery 2’s discharge capacity",
"Battery 2 is degraded and can provide less power" },
NextSteps = new[] { "Reduce overall power consumption",
"Check if Battery 2 is properly sized for the load demands",
"Restart the inverter after reducing the load",
"Review battery settings (e.g., charge/discharge current)" }
},
["Battery2SoftStartFailure"] = new()
{
Explanation = "Battery 2 failed to complete its startup sequence.",
Causes = new[] { "Fault in Battery 2’s pre-charge circuit",
"Voltage mismatch between Battery 2 and the DC bus" },
NextSteps = new[] { "Check Battery 2’s voltage and compare it with the DC bus voltage",
"Inspect the pre-charge circuit and contactors of Battery 2, then restart" }
},
["Battery2PowerTubeFault"] = new()
{
Explanation = "The power electronics (IGBT or MOSFET transistors) in Battery 2 are faulty. Professional repair required.",
Causes = new[] { "Power semiconductor failure due to overload, overcurrent, or wear",
"Short circuit damaging the power electronics" },
NextSteps = new[] { "Do not restart the system",
"Contact a qualified technician to repair the internal hardware" }
},
["Battery2InsufficientPower"] = new()
{
Explanation = "Battery 2 cannot meet the current power demand.",
Causes = new[] { "Battery 2’s charge level is too low",
"Power demand exceeds Battery 2’s maximum discharge capacity",
"Battery capacity reduced due to aging" },
NextSteps = new[] { "Wait until Battery 2 is recharged",
"Reduce load if the battery is low",
"The alarm should clear once the battery is recharged" }
},
["Battery2BackupProhibited"] = new()
{
Explanation = "Battery 2 is currently not allowed to provide backup power.",
Causes = new[] { "Battery 2’s BMS is preventing discharge",
"Battery 2’s charge is below the minimum required for backup" },
NextSteps = new[] { "Check Battery 2’s BMS for error codes",
"Charge Battery 2 above the minimum backup level, then restart" }
},
["LithiumBattery1ChargeForbidden"] = new()
{
Explanation = "The battery management system of Lithium Battery 1 has blocked charging. The system has detected that charging is currently unsafe.",
Causes = new[] { "The battery is already fully charged and does not need further charging",
"The battery temperature is outside the safe charging range (too hot or too cold)",
"The BMS has activated due to cell voltage imbalance or an internal fault",
"Cell imbalance that must be balanced before charging can resume" },
NextSteps = new[] { "Check the battery temperature – charging is usually blocked below 0°C or above ~45°C",
"Check the BMS status or indicators for error codes",
"Allow the battery to reach normal temperature before charging",
"If the issue persists at normal temperature, contact battery service" }
},
["LithiumBattery1DischargeForbidden"] = new()
{
Explanation = "The battery management system of Lithium Battery 1 has blocked discharging. The system has detected that discharging is currently unsafe.",
Causes = new[] { "The battery is at or below the minimum state of charge – too low for safe discharging",
"The battery temperature is outside the safe discharging range",
"The BMS has activated low-voltage protection",
"Cell imbalance or an internal BMS protection event" },
NextSteps = new[] { "Allow the battery to charge from PV or the grid until the state of charge is above the minimum level",
"Check the battery temperature – discharging is blocked in very cold conditions",
"Check the BMS status for specific error codes",
"If the battery does not accept charge, contact battery service" }
},
["LithiumBattery2ChargeForbidden"] = new()
{
Explanation = "The battery management system of Lithium Battery 2 has blocked charging.",
Causes = new[] { "Battery 2 is already fully charged",
"The temperature of Battery 2 is outside the safe charging range",
"BMS protection event on Battery 2" },
NextSteps = new[] { "Check the temperature and BMS status of Battery 2",
"Allow the temperature to normalize before charging",
"If the issue persists, check the BMS error codes" }
},
["LithiumBattery2DischargeForbidden"] = new()
{
Explanation = "The battery management system of Lithium Battery 2 has blocked discharging.",
Causes = new[] { "Battery 2 is at the minimum state of charge",
"The temperature of Battery 2 is outside the safe discharging range",
"BMS protection event on Battery 2" },
NextSteps = new[] { "Allow Battery 2 to charge from PV or the grid",
"Check the battery temperature and BMS status for error codes",
"If the battery cannot be charged, contact battery service" }
},
["LithiumBattery1Full"] = new()
{
Explanation = "Lithium Battery 1 is fully charged. Charging has been automatically stopped.",
Causes = new[] { "The battery has reached 100% state of charge",
"The cell voltage has reached the maximum safe level" },
NextSteps = new[] { "This is normal operation – no action required",
"Monitor the battery condition regularly to ensure cells are balanced correctly" }
},
["LithiumBattery1DischargeEnd"] = new()
{
Explanation = "Lithium battery 1 has reached the end of its discharge cycle — the minimum charge level has been reached.",
Causes = new[] { "The battery was discharged to the configured minimum charge level",
"High demand or daily load drained the battery" },
NextSteps = new[] { "Allow the battery to recharge using solar or grid power",
"Consider reducing power use during low sunlight to preserve charge" }
},
["LithiumBattery2Full"] = new()
{
Explanation = "Lithium battery 2 is fully charged. Charging has automatically stopped.",
Causes = new[] { "Battery 2 reached 100% charge level" },
NextSteps = new[] { "This is normal operation — no action needed",
"The system will resume charging automatically if the charge level drops" }
},
["LithiumBattery2DischargeEnd"] = new()
{
Explanation = "Lithium battery 2 has reached the end of its discharge cycle.",
Causes = new[] { "Battery 2 was discharged to the configured minimum charge level" },
NextSteps = new[] { "Allow battery 2 to recharge using solar or grid power",
"This alarm will clear automatically once the charge is restored" }
},
["LeadBatteryTemperatureAbnormality"] = new()
{
Explanation = "The lead battery temperature is outside the normal operating range.",
Causes = new[] { "Battery overheating due to high ambient temperature or excessive charging current",
"Temperature sensor fault causing incorrect readings",
"Very cold ambient temperature slowing chemical reactions" },
NextSteps = new[] { "Check the battery temperature directly if safe to do so",
"Improve battery ventilation or cooling if overheating",
"Ensure the temperature sensor is properly connected and working",
"Fix the underlying cause and restart the inverter" }
},
["BatteryAccessMethodError"] = new()
{
Explanation = "The battery access method is incorrectly configured — the inverter and battery are not set up to communicate using the same protocol.",
Causes = new[] { "Wrong battery communication protocol set in the inverter",
"Battery type or model does not match the configured access method" },
NextSteps = new[] { "Check the battery communication settings in the inverter configuration",
"Ensure the battery type and communication protocol match the connected battery, then restart" }
},
["Pv1NotAccessed"] = new()
{
Explanation = "PV line 1 is not detected or accessible. The inverter is not measuring any voltage or current from PV line 1.",
Causes = new[] { "PV line 1 is switched off (isolator open)",
"Cable break interrupts the circuit",
"Fault in a PV module on the line",
"No sunlight available (night or heavy cloud cover)" },
NextSteps = new[] { "Check if the isolator for PV line 1 is turned on",
"Inspect all cable connections for PV line 1",
"Look for shading or obstructions on the modules",
"Repair damaged cables or connectors, then restart" }
},
["Pv1Overvoltage"] = new()
{
Explanation = "The voltage of PV line 1 exceeds the inverter’s maximum DC input voltage, which may damage the inverter.",
Causes = new[] { "Too many PV modules connected in series for this inverter model",
"Cold temperatures significantly increase module voltage",
"Incorrect system design – wrong line sizing" },
NextSteps = new[] { "Check how many modules are connected in series and compare with the inverter’s maximum input voltage",
"Verify the open-circuit voltage at the lowest expected temperature – it must stay below the inverter’s maximum limit",
"Reduce the number of modules in series if necessary" }
},
["AbnormalPv1CurrentSharing"] = new()
{
Explanation = "The current flow in PV line 1 is uneven, indicating a problem.",
Causes = new[] { "Different PV modules with mismatched electrical characteristics",
"Partial shading activates bypass diodes",
"Module fault reduces current in part of the line" },
NextSteps = new[] { "Check for shading or dirt on PV line 1",
"Ensure all modules on the line are the same model and undamaged",
"Fix the underlying issue, then restart the inverter" }
},
["Pv1PowerTubeFault"] = new()
{
Explanation = "The power electronics (IGBT/MOSFET) of the PV1 DC converter have failed. This is a hardware defect.",
Causes = new[] { "IGBT or MOSFET failure due to overcurrent, overvoltage, or long-term wear",
"Short circuit or voltage spike damaged the power electronics" },
NextSteps = new[] { "Do not restart the system",
"Contact a qualified technician for repair" }
},
["Pv1SoftStartFailure"] = new()
{
Explanation = "PV line 1 could not complete the soft-start sequence (pre-charge) during startup.",
Causes = new[] { "Fault in the pre-charge circuit prevents controlled startup",
"PV voltage differs significantly from the expected DC bus voltage level" },
NextSteps = new[] { "Check the PV voltage at the inverter inputs",
"Repair the pre-charge circuit, then restart the inverter" }
},
["Pv1OverloadTimeout"] = new()
{
Explanation = "PV line 1 has been supplying too much power for too long.",
Causes = new[] { "The PV system is too large for the DC converter's capacity",
"The DC converter cannot handle the high sunlight intensity" },
NextSteps = new[] { "Check if the PV system size matches the inverter's input capacity",
"Fix the issue and restart the inverter" }
},
["Pv1InsufficientPower"] = new()
{
Explanation = "PV line 1 is supplying too little power, usually due to weather conditions.",
Causes = new[] { "Clouds or bad weather reduce sunlight",
"Shading on PV line 1",
"Low sun position in the morning or evening" },
NextSteps = new[] { "Wait for better sunlight—this resolves on its own",
"Check for new sources of shading like trees, buildings, or dirt",
"The alarm will clear automatically when sunlight returns" }
},
["Photovoltaic1Overcurrent"] = new()
{
Explanation = "The current in PV line 1 exceeds the inverter's maximum DC input capacity.",
Causes = new[] { "The PV system is too large with too many parallel strings",
"Ground fault causing unusual current flow",
"Short circuit in part of the PV line" },
NextSteps = new[] { "Check the configuration of PV line 1—number of parallel strings",
"Inspect for ground faults or short circuits in the wiring",
"Fix the issue and restart the inverter" }
},
["Pv2NotAccessed"] = new()
{
Explanation = "PV line 2 is not detected or is inaccessible.",
Causes = new[] { "The disconnect switch for PV line 2 is turned off",
"Damaged cable on line 2",
"No sunlight available" },
NextSteps = new[] { "Check if the disconnect switch for PV line 2 is ON",
"Inspect cable connections on line 2",
"Repair any damage and restart the inverter" }
},
["Pv2Overvoltage"] = new()
{
Explanation = "The voltage from PV line 2 exceeds the maximum DC input voltage.",
Causes = new[] { "Too many PV modules connected in series in line 2",
"Cold temperatures increase module voltage beyond inverter limits" },
NextSteps = new[] { "Check the number of modules and voltage of line 2 against the inverter's specifications",
"If needed, reduce the number of modules in series to stay within voltage limits" }
},
["AbnormalPv2CurrentSharing"] = new()
{
Explanation = "The current distribution in PV string 2 is abnormal.",
Causes = new[] { "Mismatched or degraded modules in string 2",
"Partial shading of the string 2 panels" },
NextSteps = new[] { "Check the string 2 panels for dirt or shading",
"Fix the issue and restart the inverter" }
},
["Pv2PowerTubeFault"] = new()
{
Explanation = "The power electronics of the PV2 DC converter have failed. Professional service is required.",
Causes = new[] { "Failure of a power semiconductor (IGBT/MOSFET)",
"Damage from overcurrent or voltage spikes" },
NextSteps = new[] { "Do not restart the system",
"Contact a qualified service technician for repair" }
},
["Pv2SoftStartFailure"] = new()
{
Explanation = "PV string 2 failed to complete the soft-start sequence.",
Causes = new[] { "Pre-charge fault in the PV2 converter",
"Voltage mismatch between PV2 and the DC bus" },
NextSteps = new[] { "Check the input voltage of PV string 2",
"Fix the pre-charge fault and restart the inverter" }
},
["Pv2OverloadTimeout"] = new()
{
Explanation = "PV string 2 has been supplying too much power for too long.",
Causes = new[] { "PV string 2 is too large for the converter’s capacity",
"Prolonged high sunlight exceeding converter limits" },
NextSteps = new[] { "Check the size of PV string 2 against the inverter specifications",
"Resolve the issue and restart the inverter" }
},
["Pv2InsufficientPower"] = new()
{
Explanation = "PV string 2 is not supplying enough power, usually due to weather conditions.",
Causes = new[] { "Low sunlight or heavy shading on string 2",
"Early morning or late evening with low sun angle" },
NextSteps = new[] { "Wait for better sunlight conditions",
"Check for new sources of shading on the string 2 panels" }
},
["Pv3NotConnected"] = new()
{
Explanation = "PV line 3 is not connected or not detected.",
Causes = new[] { "PV line 3 disconnect switch is turned off",
"Cable for line 3 is disconnected or damaged",
"No sunlight available" },
NextSteps = new[] { "Check if the PV line 3 disconnect switch is ON",
"Inspect cable connections for line 3",
"Repair any damage and then restart" }
},
["Pv3Overvoltage"] = new()
{
Explanation = "The voltage of PV line 3 exceeds the maximum DC input voltage.",
Causes = new[] { "Too many PV modules connected in series on line 3",
"Cold temperatures increase module voltage beyond inverter limits" },
NextSteps = new[] { "Check if the number of modules on line 3 complies with the inverter’s maximum input voltage",
"Reduce the number of modules if the voltage exceeds limits at minimum outdoor temperature" }
},
["Pv3AverageCurrentAnomaly"] = new()
{
Explanation = "The average current of PV line 3 is unusual, indicating uneven performance.",
Causes = new[] { "Module differences or degradation in line 3",
"Partial shading affecting some modules in line 3" },
NextSteps = new[] { "Check modules in line 3 for shading, dirt, or damage",
"Fix the issue and then restart the inverter" }
},
["Pv3PowerTubeFailure"] = new()
{
Explanation = "The power electronics for PV line 3 have failed. Professional service is required.",
Causes = new[] { "Failure of power semiconductors due to overload or aging",
"Damage from overcurrent or voltage spikes" },
NextSteps = new[] { "Do not restart the system",
"Contact a qualified service technician to repair the internal hardware" }
},
["Pv3SoftStartFailure"] = new()
{
Explanation = "PV line 3 failed to complete the soft start process.",
Causes = new[] { "Fault in the pre-charge circuit of the PV-3 converter",
"Voltage difference between PV-3 and the DC bus" },
NextSteps = new[] { "Check the voltage of PV line 3 at the inverter terminals",
"Repair the pre-charge circuit and then restart the inverter" }
},
["Pv3OverloadTimeout"] = new()
{
Explanation = "PV string 3 has been supplying too much current for too long.",
Causes = new[] { "PV string 3 is too large for the inverter",
"Prolonged high sunlight exceeds the inverter’s DC limits" },
NextSteps = new[] { "Check if PV string 3 matches the inverter’s specifications",
"Fix the issue and restart the inverter" }
},
["Pv3ReverseConnection"] = new()
{
Explanation = "PV string 3 is connected with reversed polarity. This wiring error must be fixed before operation.",
Causes = new[] { "Positive and negative cables of PV string 3 may have been swapped during installation",
"Incorrect cable connection at the inverter’s DC input" },
NextSteps = new[] { "Do not restart the inverter—reversed polarity can damage components",
"Turn off the system completely and swap the positive and negative connections of PV string 3",
"Verify correct polarity before restarting" }
},
["Pv4NotConnected"] = new()
{
Explanation = "PV string 4 is not connected or not detected.",
Causes = new[] { "Disconnect switch for PV string 4 is turned off",
"Cable for string 4 is loose or damaged",
"No sunlight available" },
NextSteps = new[] { "Check if the disconnect switch for PV string 4 is ON",
"Inspect the cable connections for string 4",
"Fix any damage and restart the system" }
},
["Pv4Overvoltage"] = new()
{
Explanation = "The voltage from PV string 4 exceeds the maximum DC input voltage.",
Causes = new[] { "Too many PV modules connected in series in string 4",
"Cold temperatures cause module voltage to rise above the inverter’s limit" },
NextSteps = new[] { "Check the number of modules in string 4 against the inverter’s maximum input voltage",
"Reduce the number of modules in series if the voltage exceeds specifications" }
},
["Pv4AverageCurrentAnomaly"] = new()
{
Explanation = "The average current from PV string 4 is unusual.",
Causes = new[] { "Module differences or degradation within string 4",
"Partial shading affecting modules in string 4" },
NextSteps = new[] { "Inspect modules in string 4 for shading, dirt, or damage",
"Fix the issue and restart the inverter" }
},
["Pv4PowerTubeFailure"] = new()
{
Explanation = "The power electronics of PV 4 have failed. A professional must inspect the system.",
Causes = new[] { "Failure of the power semiconductor due to overload or aging",
"Damage caused by overcurrent or voltage spike" },
NextSteps = new[] { "Do not restart the system",
"Contact a qualified technician for repair" }
},
["Pv4SoftStartFailure"] = new()
{
Explanation = "PV string 4 could not complete the soft start.",
Causes = new[] { "Fault in the pre-charge circuit of the PV 4 converter",
"Voltage difference between PV 4 and the DC bus" },
NextSteps = new[] { "Check the voltage of PV string 4 at the inverter terminals",
"Fix the pre-charge fault and restart the inverter" }
},
["Pv4OverloadTimeout"] = new()
{
Explanation = "PV string 4 has been supplying too much power for too long.",
Causes = new[] { "PV string 4 is oversized for the converter",
"Sustained high sunlight exceeds the capacity of the DC converter" },
NextSteps = new[] { "Check the sizing of PV string 4 against the inverter specifications",
"Resolve the cause and restart the inverter" }
},
["Pv4ReverseConnection"] = new()
{
Explanation = "PV string 4 is connected with reversed polarity. This must be corrected before operation.",
Causes = new[] { "The positive and negative cables of PV string 4 were swapped during installation",
"Incorrect cable connection at the inverter’s DC input" },
NextSteps = new[] { "Do not restart the system—turn it off completely first",
"Swap the positive and negative terminals of PV string 4 to correct the polarity",
"Check the polarity before restarting" }
},
["InsufficientPhotovoltaicPower"] = new()
{
Explanation = "The available PV power is insufficient for current consumption or system demand.",
Causes = new[] { "Low sunlight due to clouds or weather conditions",
"Morning or evening—sun angle too low for full power",
"Shading on one or more PV strings" },
NextSteps = new[] { "Wait for better sunlight conditions—this usually resolves itself",
"Check for module shading and remove it if possible",
"The alarm will clear automatically once sunlight improves" }
},
["DcBusOvervoltage"] = new()
{
Explanation = "The internal DC bus voltage is too high. This may indicate an energy imbalance in the system.",
Causes = new[] { "Too much charging power is flowing into the DC bus without any consumers",
"Energy is being fed back into the DC bus from regenerative loads",
"Fault in the DC bus voltage regulation" },
NextSteps = new[] { "Check the power balance between generation, consumption, and storage",
"Fix the fault and restart the inverter" }
},
["DcBusUndervoltage"] = new()
{
Explanation = "The internal DC bus voltage is too low, preventing normal operation.",
Causes = new[] { "The load is drawing more power than all sources can provide",
"Issue with the power supply or battery limiting the DC bus voltage",
"Battery is nearly empty" },
NextSteps = new[] { "Reduce the system load",
"Check all power sources—solar, grid, and battery—for proper function",
"Fix the cause and restart the inverter" }
},
["DcBusVoltageUnbalance"] = new()
{
Explanation = "The DC bus voltage is unbalanced between the positive and negative sides.",
Causes = new[] { "Failure in the DC bus capacitor block",
"Issue with the DC bus control system",
"Uneven load between the two DC bus halves" },
NextSteps = new[] { "Check the DC bus capacitor block for faulty capacitors",
"Fix the issue and restart the inverter" }
},
["BusSlowOvervoltage"] = new()
{
Explanation = "A slow, gradual increase in the DC bus voltage beyond safe limits has been detected.",
Causes = new[] { "Gradual voltage rise due to charging imbalance over time",
"Issue with charge control causing a slow voltage increase" },
NextSteps = new[] { "Check the charging power control and confirm the settings are correct",
"Resolve the fault and restart the inverter" }
},
["HardwareBusOvervoltage"] = new()
{
Explanation = "The hardware protection for DC bus overvoltage has been triggered. This is a serious overvoltage condition.",
Causes = new[] { "Severe overvoltage event caused by an external source or internal failure",
"Component failure leading to uncontrolled voltage increase" },
NextSteps = new[] { "Do not restart – this requires a professional inspection",
"Contact a service technician to investigate the cause of the overvoltage" }
},
["BusSoftStartFailure"] = new()
{
Explanation = "The DC bus could not pre-charge properly and start up smoothly.",
Causes = new[] { "Faulty pre-charge resistor or circuit",
"Failed DC bus capacitor preventing charging",
"Relay or contactor in the pre-charge circuit not working correctly" },
NextSteps = new[] { "Check the pre-charge circuit and all associated relays",
"Fix the issue and restart the inverter" }
},
["InverterPowerTubeFault"] = new()
{
Explanation = "The inverter’s main power electronics (IGBT or MOSFET transistors) are faulty, requiring professional service.",
Causes = new[] { "Power semiconductor failure due to prolonged overload",
"Overcurrent damage from a short circuit",
"Thermal damage from overheating",
"Component failure due to end of lifespan" },
NextSteps = new[] { "Do not attempt to restart the inverter—this could cause further damage",
"Contact a qualified service technician immediately",
"Hardware repair or module replacement is required" }
},
["HardwareOvercurrent"] = new()
{
Explanation = "The hardware overcurrent protection has triggered—the current exceeded the absolute hardware limit.",
Causes = new[] { "Short circuit in the output wiring or connected loads",
"Severe overload exceeding the hardware protection threshold",
"Failure of an internal power electronics component" },
NextSteps = new[] { "Do not restart the system until the cause is identified",
"Contact a service technician to check for short circuits and component damage" }
},
["DcConverterOvervoltage"] = new()
{
Explanation = "The input or output voltage of the DC converter is too high.",
Causes = new[] { "Input voltage (PV or battery) exceeds the converter’s limits",
"Fault in the DC converter’s voltage regulation" },
NextSteps = new[] { "Check the PV and battery voltage",
"Fix the cause and restart the inverter" }
},
["DcConverterHardwareOvervoltage"] = new()
{
Explanation = "The DC converter’s hardware overvoltage protection has triggered—a severe overvoltage condition occurred.",
Causes = new[] { "Severe overvoltage at the DC converter’s input or output",
"Lightning strike or external voltage spike" },
NextSteps = new[] { "Do not restart the system—contact a service technician to check for damage before further operation" }
},
["DcConverterOvercurrent"] = new()
{
Explanation = "The current in the DC converter is too high.",
Causes = new[] { "Overload due to excessive current draw in the converter",
"Short circuit in the DC circuit" },
NextSteps = new[] { "Reduce the load or charging/discharging current",
"Check for short circuits, then restart the inverter" }
},
["DcConverterHardwareOvercurrent"] = new()
{
Explanation = "The DC converter’s hardware overcurrent protection has tripped—the current limit was exceeded.",
Causes = new[] { "Severe overcurrent due to a short circuit or hardware failure",
"Fault in the power electronics causing uncontrolled current flow" },
NextSteps = new[] { "Do not restart—contact a service technician to inspect for damage before resuming operation" }
},
["DcConverterResonatorOvercurrent"] = new()
{
Explanation = "The DC converter’s resonance circuit has an overcurrent.",
Causes = new[] { "Resonance condition causing excessive current fluctuations in the converter",
"Control issue in the DC converter affecting the resonance circuit" },
NextSteps = new[] { "Fix the underlying issue, then restart the inverter; if the problem persists, contact service" }
},
["SystemOutputOverload"] = new()
{
Explanation = "The system’s total output power is overloaded—more power is being demanded than the system can safely provide.",
Causes = new[] { "Too many high-power devices are connected at the same time",
"Total load demand exceeds the inverter’s rated capacity",
"Short circuit in one of the connected devices" },
NextSteps = new[] { "Disconnect some devices to reduce total power consumption",
"Check for short circuits or faults in connected devices",
"Fix the cause, then restart the inverter" }
},
["InverterOverload"] = new()
{
Explanation = "The inverter is overloaded—the connected devices are drawing more power than the inverter can handle.",
Causes = new[] { "Connected load exceeds the inverter’s rated capacity",
"High startup currents from large motors or compressors",
"Short circuit in a connected device" },
NextSteps = new[] { "Reduce the total load",
"Stagger the startup of large devices to lower the initial current surge",
"Fix the cause, then restart the inverter" }
},
["InverterOverloadTimeout"] = new()
{
Explanation = "The inverter was overloaded for too long and shut down automatically.",
Causes = new[] { "Prolonged overload exceeding the inverter’s short-term overload capacity",
"The inverter is undersized for the actual load" },
NextSteps = new[] { "Check the sensible distribution of loads between backup power and the regular household grid.",
"Permanently reduce the connected load",
"If the load is necessary, upgrade to a larger inverter",
"Fix the cause and restart the inverter" }
},
["LoadPowerOverload"] = new()
{
Explanation = "The connected load exceeds the system’s capacity.",
Causes = new[] { "Too many high-power devices running at the same time",
"A new high-power device was added that exceeds the system’s capacity" },
NextSteps = new[] { "Check the sensible distribution of loads between backup power and the regular household grid.",
"Reduce the load by turning off non-essential devices",
"Stagger the use of high-power devices and restart the inverter" }
},
["BalancedCircuitOverloadTimeout"] = new()
{
Explanation = "The phase balancing was overloaded for too long.",
Causes = new[] { "Uneven load distribution between phases—one phase carries significantly more than the others",
"A single phase is severely overloaded" },
NextSteps = new[] { "Distribute the load more evenly across the three phases",
"Fix the cause and restart the inverter" }
},
["InverterSoftStartFailure"] = new()
{
Explanation = "The inverter failed to complete the soft-start sequence when turning on.",
Causes = new[] { "The pre-charge resistor is faulty and prevents controlled charging of the DC bus",
"The contactor or relay does not close correctly during the start sequence",
"Issue with the DC bus capacitor affecting pre-charging",
"Fault on the control board interrupting the start sequence" },
NextSteps = new[] { "Restart the system—turn off all disconnect switches, wait 30 seconds, then turn them back on",
"Check if the DC bus voltage rises evenly during pre-charging",
"If the issue persists, contact a service technician" }
},
["Dsp1ParameterSettingFault"] = new()
{
Explanation = "The inverter detected an incorrect setting in its internal parameters.",
Causes = new[] { "One or more inverter parameters are outside the allowed range.",
"The firmware is corrupted and affects parameter storage.",
"After a firmware update, the settings no longer match." },
NextSteps = new[] { "Review all inverter parameters and correct any invalid values.",
"Reset the parameters to factory settings if unsure." }
},
["Dsp2ParameterSettingFault"] = new()
{
Explanation = "DSP 2 has detected an incorrect parameter configuration.",
Causes = new[] { "One or more parameters are outside the valid range",
"Firmware corruption affecting parameter storage" },
NextSteps = new[] { "Check and correct the parameters",
"Fix the cause and then restart the inverter" }
},
["DspVersionCompatibilityFault"] = new()
{
Explanation = "The DSP firmware version is not compatible with other system components.",
Causes = new[] { "Firmware versions of DSP and other boards do not match",
"Incomplete or failed firmware update, causing components to have different versions" },
NextSteps = new[] { "Update all firmware components to the same compatible version",
"Contact technical support if the correct version is unknown" }
},
["CpldVersionCompatibilityFault"] = new()
{
Explanation = "The CPLD (Complex Programmable Logic Device) version is not compatible with the system.",
Causes = new[] { "CPLD firmware does not match other components",
"Incomplete firmware update" },
NextSteps = new[] { "Perform a complete firmware update to ensure all components have matching versions",
"Restart the inverter after the update" }
},
["CpldCommunicationFault"] = new()
{
Explanation = "Communication with the internal CPLD chip has failed.",
Causes = new[] { "Internal communication bus error between DSP and CPLD",
"CPLD chip failure" },
NextSteps = new[] { "Restart the system—this may restore communication",
"If the error persists after restarting, contact a service technician" }
},
["DspCommunicationFault"] = new()
{
Explanation = "Communication with the DSP has failed.",
Causes = new[] { "Internal communication bus error",
"DSP hardware failure" },
NextSteps = new[] { "Restart the system",
"If the error persists after restarting, contact a service technician" }
},
["OutputVoltageDcOverlimit"] = new()
{
Explanation = "A DC voltage component has appeared in the AC voltage and exceeds the allowed limit.",
Causes = new[] { "Control loop drift causes DC offset in the output",
"Voltage sensor has an offset error",
"Hardware issue in the output stage" },
NextSteps = new[] { "Restart the inverter—this often resolves temporary offset errors",
"If the problem persists, contact a service technician" }
},
["OutputCurrentDcOverlimit"] = new()
{
Explanation = "A DC current component has appeared in the AC current and exceeds the allowed limit.",
Causes = new[] { "Control issue causes DC offset in the output current",
"Current sensor has an error or calibration issue" },
NextSteps = new[] { "Restart the inverter",
"If the error persists, contact service for sensor inspection" }
},
["RelaySelfCheckFails"] = new()
{
Explanation = "The relay self-test failed during startup or periodic testing.",
Causes = new[] { "Relay contact is faulty—possibly damaged or welded",
"Relay driver circuit is defective",
"Relay contacts welded due to overcurrent" },
NextSteps = new[] { "Check relay function by listening for clicking sounds during startup",
"Fix the issue and restart the inverter" }
},
["InverterRelayOpen"] = new()
{
Explanation = "The inverter output relay is unexpectedly open when it should be closed.",
Causes = new[] { "Relay driver circuit prevents the relay from closing",
"A protection mechanism has opened the relay" },
NextSteps = new[] { "Check for other active protection alarms that may have opened the relay",
"Fix the issue and restart the inverter" }
},
["InverterRelayShortCircuit"] = new()
{
Explanation = "The inverter relay contacts are welded (short-circuited) and cannot open when needed.",
Causes = new[] { "Relay contacts welded due to overcurrent during a fault event",
"Relay component is defective" },
NextSteps = new[] { "Do not restart—a welded relay is a safety hazard",
"Contact a service technician for inspection and relay replacement" }
},
["OpenCircuitOfPowerGridRelay"] = new()
{
Explanation = "The grid connection relay is unexpectedly open.",
Causes = new[] { "Grid relay faulty, not closing properly",
"Protection trip has opened the grid relay",
"Issue with the relay control signal" },
NextSteps = new[] { "Check for other active alarms that could explain the opening",
"Inspect the relay and its control, then restart the inverter" }
},
["ShortCircuitOfPowerGridRelay"] = new()
{
Explanation = "The contacts of the grid relay are welded shut and no longer open.",
Causes = new[] { "Relay contacts welded due to overcurrent",
"Relay faulty or at end of life" },
NextSteps = new[] { "Do not restart—contact a technician to replace the relay before continuing operation" }
},
["GeneratorRelayOpenCircuit"] = new()
{
Explanation = "The generator connection relay is unexpectedly open.",
Causes = new[] { "Generator relay faulty, not closing",
"Protection trip has opened the relay",
"Issue with the relay control signal" },
NextSteps = new[] { "Check for other active alarms that could explain the condition",
"Inspect the relay, then restart the inverter" }
},
["GeneratorRelayShortCircuit"] = new()
{
Explanation = "The contacts of the generator relay are welded shut and no longer open.",
Causes = new[] { "Relay contacts welded due to overcurrent",
"Generator relay faulty" },
NextSteps = new[] { "Do not restart—contact a technician to replace the generator relay before continuing operation" }
},
["AbnormalInverter"] = new()
{
Explanation = "A general inverter anomaly has been detected. Check for other more specific alarms that may indicate the cause.",
Causes = new[] { "Internal control errors without a precise diagnosis",
"Multiple minor faults occurring simultaneously",
"Power electronics operating outside normal parameters" },
NextSteps = new[] { "Turn off the inverter and restart to see if other specific alarms appear",
"Check all input voltages and load values for unusual readings",
"If the alarm persists, contact a technician with the full alarm log" }
},
["ParallelCommunicationAlarm"] = new()
{
Explanation = "Communication between parallel inverters has failed. Without communication, the inverters cannot synchronize or share the load correctly.",
Causes = new[] { "The communication cable between parallel inverters is damaged or disconnected",
"Failure of the parallel communication interface on one device",
"Settings do not match between the parallel units" },
NextSteps = new[] { "Check all parallel communication cables between the inverter units",
"Ensure all parallel settings (voltage, frequency, droop settings) match on all units",
"Fix the underlying issue and then restart the inverter system" }
},
["ParallelModuleMissing"] = new()
{
Explanation = "One of the expected parallel inverter modules is not responding.",
Causes = new[] { "A parallel module is offline or turned off",
"Communication to a module has been lost",
"A module shut down due to its own alarm" },
NextSteps = new[] { "Check all parallel inverter units for individual alarms or power loss",
"Fix the underlying issue on the missing module and then restart it" }
},
["DuplicateMachineNumbersForParallelModules"] = new()
{
Explanation = "Two parallel inverter modules were configured with the same device number, causing a conflict.",
Causes = new[] { "Configuration error — the same device number was assigned to two different units during setup",
"Duplicate address was not detected during commissioning" },
NextSteps = new[] { "Access each device’s settings and assign a unique device number to each unit",
"Fix the configuration and then restart the inverter system" }
},
["ParameterConflictInParallelModule"] = new()
{
Explanation = "A parameter conflict exists between parallel inverter modules — their settings do not match.",
Causes = new[] { "Key parameters like voltage setpoint, frequency, or droop settings differ between units",
"One unit was updated or reconfigured without updating the others" },
NextSteps = new[] { "Compare the settings of all parallel units and synchronize them to the same values",
"Fix the configuration conflict and then restart the system" }
},
["SystemDerating"] = new()
{
Explanation = "The system is operating at reduced power (derating) to protect itself. Performance will stay below rated levels until the issue is resolved.",
Causes = new[] { "High inverter temperature causing thermal derating",
"Input voltage (PV or grid) is at the edge of the operating range",
"A component is reaching its operational limits" },
NextSteps = new[] { "Check the inverter temperature and improve ventilation if overheating",
"Ensure input voltages are within the inverter’s normal operating range",
"Identify and fix the specific cause of derating — check if other alarms are active" }
},
["PvAccessMethodErrorAlarm"] = new()
{
Explanation = "The PV input configuration is set incorrectly, causing a mismatch between the physical wiring and the software settings.",
Causes = new[] { "The PV string wiring does not match the selected configuration (e.g., incorrect series or parallel setting)",
"Wiring is not compatible with the PV access method configured in the inverter" },
NextSteps = new[] { "Check the PV configuration settings and compare them with the actual physical wiring",
"Correct either the settings or the wiring, then restart the system" }
},
["ReservedAlarms4"] = new()
{
Explanation = "Reserved Alarm 4 is active. This alarm code is not documented in the standard alarm tables.",
Causes = new[] { "An undocumented internal condition has been detected" },
NextSteps = new[] { "Monitor the system for other alarms that may provide more context",
"Contact technical support with the full alarm log if this alarm persists" }
},
["ReservedAlarms5"] = new()
{
Explanation = "Reserved Alarm 5 is active. This alarm code is not documented in the standard alarm tables.",
Causes = new[] { "An undocumented internal condition has been detected" },
NextSteps = new[] { "Monitor the system for other alarms that may provide more context",
"Contact technical support with the full alarm log if this alarm persists" }
},
["ReverseMeterConnection"] = new()
{
Explanation = "The electricity meter is connected incorrectly, causing inaccurate readings for power consumption or feed-in.",
Causes = new[] { "The current transformer (CT) is installed in the wrong direction",
"The meter’s live (L) and neutral (N) wires are swapped",
"Other nearby transformers are causing interference—keep at least 30 cm distance" },
NextSteps = new[] { "Do not rely on the meter readings until the issue is corrected",
"Contact your installer or a qualified electrician to check the CT or meter wiring" }
},
["InverterSealPulse"] = new()
{
Explanation = "The inverter seal pulse signal is active, indicating that power output is being limited.",
Causes = new[] { "A protection feature has activated the power limit",
"External signals or grid code compliance functions are restricting power" },
NextSteps = new[] { "Check the system status for other active alarms that may explain the limitation",
"Resolve the underlying cause and restart the inverter" }
},
["AbnormalDieselGeneratorVoltage"] = new()
{
Explanation = "The diesel generator voltage is outside the allowed range, so the inverter cannot connect to it.",
Causes = new[] { "Generator output voltage not set to the correct level",
"Fault in the generator’s automatic voltage regulator (AVR)",
"Generator is underloaded or overloaded, affecting output voltage" },
NextSteps = new[] { "Check the generator voltage and adjust it to match the inverter’s specifications",
"Inspect the AVR—if voltage remains unstable, restart the generator" }
},
["AbnormalDieselGeneratorFrequency"] = new()
{
Explanation = "The diesel generator frequency is outside the allowed range.",
Causes = new[] { "Generator engine speed not set correctly for the target frequency",
"Fault in the governor causing frequency instability" },
NextSteps = new[] { "Adjust the generator speed to reach the correct frequency (50 Hz or 60 Hz)",
"Inspect and repair the governor—if frequency remains unstable, restart the generator" }
},
["DieselGeneratorVoltageReverseSequence"] = new()
{
Explanation = "The diesel generator is connected with reversed phase sequence.",
Causes = new[] { "Generator output cables incorrectly connected to phases (L1, L2, L3)" },
NextSteps = new[] { "Do not restart—contact a qualified electrician to correct the generator phase wiring" }
},
["DieselGeneratorVoltageOutOfPhase"] = new()
{
Explanation = "The generator voltage is not synchronized with the grid or system, preventing synchronization.",
Causes = new[] { "Synchronization issue—generator not aligning with grid phase angle",
"Phase angle mismatch between generator and grid" },
NextSteps = new[] { "Check synchronization settings and ensure the generator supports auto-sync with this inverter",
"Fix synchronization errors, then restart" }
},
["GeneratorOverload"] = new()
{
Explanation = "The diesel generator is overloaded—the system is drawing more power than the generator can supply.",
Causes = new[] { "Total load demand exceeds the generator’s rated capacity",
"Battery charging combined with load demand exceeds generator capacity",
"Generator is undersized for the installation" },
NextSteps = new[] { "Reduce load or battery charging to keep total demand within the generator’s capacity",
"Restart the inverter after reducing the load" }
},
};
// ── Growatt Alarms ───────────────────────────────────────────────────────
private static readonly IReadOnlyDictionary GrowattAlarms = new Dictionary
{
["StringFault"] = new()
{
Explanation = "A fault has been detected in the PV string. One or more PV strings may have issues affecting power generation.",
Causes = new[] { "Fault or damage in a PV module within the string",
"Problem with the string wiring or loose connection",
"Damaged or corroded MC4 connector",
"Module degradation causing reduced or no output" },
NextSteps = new[] { "Check if the PV modules look intact—look for cracks, discoloration, or damage",
"Inspect cable connections and MC4 connectors for damage or corrosion",
"Look for damaged cables along the string path",
"Have a technician test each string with a multimeter if the issue persists" }
},
["PvStringPidQuickConnectAbnormal"] = new()
{
Explanation = "The PV string or PID quick connectors are abnormal.",
Causes = new[] { "Loose or improperly locked quick connector",
"Damaged quick connector housing",
"Corrosion or oxidation on the contacts" },
NextSteps = new[] { "Turn off the system before inspecting the connectors",
"Check all quick connectors and ensure they are fully locked",
"Clean corroded contacts and reconnect securely" }
},
["DcSpdFunctionAbnormal"] = new()
{
Explanation = "The DC surge protection device (SPD) function is abnormal. The SPD protects against lightning strikes and voltage surges on the DC side.",
Causes = new[] { "DC SPD has tripped or failed after a surge event",
"SPD cartridge has reached the end of its lifespan",
"Wiring issue with the SPD" },
NextSteps = new[] { "Turn off the system and check the DC SPD indicator—most SPDs have a visual fault display",
"Replace the SPD cartridge if it has tripped or shows a fault",
"Restart the inverter after replacement or inspection" }
},
["PvShortCircuited"] = new()
{
Explanation = "The PV1 or PV2 string appears to be short-circuited.",
Causes = new[] { "Damaged cable insulation causing a short between positive and negative wires",
"MC4 connector failure causing an internal short",
"Module junction box fault creating a short circuit path" },
NextSteps = new[] { "Turn off all DC disconnect switches before inspection",
"Check PV1 and PV2 strings individually for short-circuit symptoms (zero voltage, unusual heat)",
"Inspect cables for damage and test insulation resistance",
"Repair or replace damaged cables/connectors before restarting the system" }
},
["PvBoostDriverAbnormal"] = new()
{
Explanation = "The PV boost converter driver circuit is abnormal.",
Causes = new[] { "Fault or component failure in the boost driver circuit",
"EMC interference affecting the driver signal",
"Internal hardware issues on the inverter board" },
NextSteps = new[] { "Restart the inverter—temporary driver faults often clear after reboot",
"If the fault persists after restart, contact the manufacturer for service" }
},
["AcSpdFunctionAbnormal"] = new()
{
Explanation = "The AC surge protection device (SPD) is not working properly. The SPD protects against lightning strikes and voltage spikes on the AC side.",
Causes = new[] { "AC SPD tripped after a voltage surge or is faulty",
"SPD cartridge has reached the end of its lifespan",
"Broken cable in the AC SPD" },
NextSteps = new[] { "Turn off the system and check the AC SPD indicator",
"Replace the AC SPD cartridge if it shows an error or has tripped",
"Restart the inverter after replacement or inspection" }
},
["DcFuseBlown"] = new()
{
Explanation = "The DC fuse has blown, cutting off the PV input to the inverter.",
Causes = new[] { "Overcurrent in the DC circuit from the PV array, exceeding the fuse limit",
"Short circuit in the DC wiring causing the fuse to blow",
"Fuse fatigue after repeated overcurrent events" },
NextSteps = new[] { "Switch off all DC switches and disconnectors before working on the circuit",
"Locate and inspect the DC fuse—it will appear visibly blown or measure as open with a multimeter",
"Identify and fix the cause of the overcurrent before replacing the fuse",
"Replace the fuse with the correct size and then restart the inverter" }
},
["DcInputVoltageTooHigh"] = new()
{
Explanation = "The DC input voltage from the PV array exceeds the inverter’s maximum safe input voltage, which can immediately damage the inverter.",
Causes = new[] { "Too many PV modules connected in series, exceeding the maximum string voltage",
"Cold temperatures increase the module’s open-circuit voltage (Voc) beyond the inverter’s limit",
"Design error—the string was incorrectly sized for this inverter" },
NextSteps = new[] { "Immediately switch off the DC disconnect to protect the inverter",
"Measure the actual DC voltage before reconnecting",
"Review the string design—ensure the Voc at the expected minimum temperature does not exceed the inverter’s limit",
"Reconfigure the string by reducing the number of modules in series if needed" }
},
["PvReversed"] = new()
{
Explanation = "The PV string polarity is reversed—positive and negative terminals are swapped.",
Causes = new[] { "PV string cables are connected with reversed polarity at the inverter or junction box",
"Installation error during initial wiring" },
NextSteps = new[] { "Switch off all DC disconnectors before working on the wiring",
"Identify the reversed connection—check the PV string polarity with a multimeter",
"Swap the positive and negative terminals to correct the polarity before restarting" }
},
["PidFunctionAbnormal"] = new()
{
Explanation = "The PID (Potential Induced Degradation) protection function is not working properly.",
Causes = new[] { "PID module failure or configuration error",
"Communication issue between the inverter and PID module" },
NextSteps = new[] { "Restart the inverter—this often resolves temporary PID errors",
"Check the PID module settings and connections if the issue persists after restart" }
},
["PvStringDisconnected"] = new()
{
Explanation = "A PV string is disconnected or not supplying power.",
Causes = new[] { "The DC isolator or switch for this string is turned off",
"A cable is loose or disconnected at a connector",
"Faulty MC4 connector" },
NextSteps = new[] { "Check if all PV string isolators are turned on",
"Inspect cable connections at both ends (panel and inverter)",
"Reconnect any loose connections and restart the inverter" }
},
["PvStringCurrentUnbalanced"] = new()
{
Explanation = "The currents from different PV strings are significantly unbalanced, indicating one string is performing worse than others.",
Causes = new[] { "Shading on some modules in one string but not others",
"Module differences or degradation in part of the system",
"Partial string failure — some modules are not contributing",
"Dirt or bird droppings on panels in one area" },
NextSteps = new[] { "Check all PV panels for shading, dirt, or visible damage",
"Compare string voltages and currents individually to identify the underperforming string",
"Clean panels if dirt is visible and check for new sources of shading" }
},
["NoUtilityGrid"] = new()
{
Explanation = "No connection to the power grid is detected, or the grid is down.",
Causes = new[] { "Power outage in your area",
"The AC circuit breaker between the inverter and grid is turned off",
"AC grid cable disconnected at the inverter or distribution box",
"Utility maintenance work cutting local power supply" },
NextSteps = new[] { "Check if other devices in the building have power — if not, it’s a grid outage",
"Verify the AC circuit breaker is on and hasn’t tripped",
"Inspect AC cable connections at the inverter",
"Wait for the utility to restore power if it’s a grid outage" }
},
["GridVoltageOutOfRange"] = new()
{
Explanation = "The grid voltage is outside the range the inverter is allowed to operate in.",
Causes = new[] { "Grid voltage at your connection point is too high or too low",
"Local grid issues like overload or transformer problems",
"Transformer tap setting not optimal for your location" },
NextSteps = new[] { "Check the actual grid voltage at the inverter terminals",
"If the voltage is consistently out of range, contact your utility provider",
"The inverter will reconnect automatically when the voltage returns to normal" }
},
["GridFrequencyOutOfRange"] = new()
{
Explanation = "The grid frequency is outside the range the inverter is allowed to operate in.",
Causes = new[] { "Grid frequency unstable due to high-demand events on the network",
"If using a generator, its frequency has drifted out of tolerance",
"Grid disturbance event" },
NextSteps = new[] { "Check the actual grid frequency at the inverter",
"If using a generator, adjust the regulator to correct the output frequency",
"Wait for the grid to stabilize — the inverter will reconnect automatically" }
},
["Overload"] = new()
{
Explanation = "The system is overloaded—more power is being demanded than the inverter can supply to the backup power (EPS) outlet.",
Causes = new[] { "Total load on the EPS outlet exceeds the inverter’s backup power capacity",
"High startup current from devices with motors or compressors",
"Short circuit in one of the backup power loads" },
NextSteps = new[] { "Reduce the load on the EPS outlet by turning off non-essential devices",
"Check for faulty devices that may be drawing excessive power",
"Start large devices one at a time to reduce startup current" }
},
["MeterDisconnected"] = new()
{
Explanation = "The electricity meter has lost connection to the inverter.",
Causes = new[] { "The meter is powered off or has no power supply",
"The communication cable between the inverter and meter is damaged or disconnected",
"The meter’s communication port is faulty" },
NextSteps = new[] { "Check if the meter has power and is turned on",
"Inspect the communication cable connections at the inverter and meter",
"Verify the meter’s power supply and communication port" }
},
["MeterReverselyConnected"] = new()
{
Explanation = "The live (L) and neutral (N) wires of the meter are reversed.",
Causes = new[] { "Live and neutral wires were swapped during installation",
"Installation error—common if meter polarity was not checked" },
NextSteps = new[] { "Have a qualified electrician inspect and correct the meter wiring",
"Swap the L and N connections at the meter terminal to fix the polarity" }
},
["LinePeVoltageAbnormal"] = new()
{
Explanation = "Abnormal voltage detected between the neutral (N) and protective earth (PE) wires, indicating a grounding or wiring issue.",
Causes = new[] { "Poor or missing PE (protective earth) connection",
"Neutral and PE wires are short-circuited somewhere in the installation",
"Ground fault in the building wiring" },
NextSteps = new[] { "Turn off the system before inspecting the wiring",
"Check that the PE (ground) cable is securely connected to the inverter and distribution box",
"Inspect the grounding system—consult a qualified electrician if needed" }
},
["PhaseSequenceError"] = new()
{
Explanation = "A phase sequence error was detected in the three-phase connection. The inverter will attempt to correct this automatically.",
Causes = new[] { "Three-phase cables connected in the wrong order (L1, L2, L3 swapped)" },
NextSteps = new[] { "No immediate action required—the inverter will automatically adjust the phase sequence",
"If the alarm persists, have an electrician check and correct the phase wiring" }
},
["FanFailure"] = new()
{
Explanation = "A cooling fan failure has been detected. Without proper cooling, the inverter will overheat and shut down.",
Causes = new[] { "Fan motor failure – fan no longer spins",
"Fan blades blocked by dirt or foreign objects",
"Loose or disconnected fan power connection",
"Fault in the fan control circuit" },
NextSteps = new[] { "Turn off the inverter before checking the fan",
"Check if the fan spins freely and is not blocked",
"Ensure the fan power connection is secure",
"Replace the fan if it has failed – do not operate the inverter without cooling" }
},
["MeterAbnormal"] = new()
{
Explanation = "The energy meter is showing unusual readings.",
Causes = new[] { "Meter is faulty or has an internal error",
"Incorrect meter settings or scaling",
"Communication issue causing data errors" },
NextSteps = new[] { "Check if the meter is powered on and working",
"Verify that meter settings match inverter settings (current transformer ratio, communication protocol)" }
},
["OptimizerCommunicationAbnormal"] = new()
{
Explanation = "Communication with a PV module optimizer has failed.",
Causes = new[] { "Optimizer is off or not receiving PV voltage",
"Power line communication disruption",
"Hardware failure of the optimizer" },
NextSteps = new[] { "Check if the optimizer is receiving PV voltage and is turned on",
"Inspect the communication connection between the inverter and optimizers",
"Replace the optimizer if it is faulty" }
},
["OverTemperature"] = new()
{
Explanation = "The inverter temperature has exceeded the normal operating range. Power output is reduced to protect the hardware.",
Causes = new[] { "Poor ventilation – hot air trapped around the inverter",
"High ambient temperature at the installation site",
"Fan failure reducing airflow inside the inverter",
"Overloading causing excessive heat buildup" },
NextSteps = new[] { "Restart the inverter after it has cooled down",
"Improve ventilation – ensure sufficient clearance around the inverter",
"Check if the cooling fan is working properly",
"Contact the manufacturer if the issue persists despite proper ventilation" }
},
["OverTemperatureAlarm"] = new()
{
Explanation = "The inverter has detected an elevated temperature warning – this is an early alert before thermal shutdown.",
Causes = new[] { "High ambient temperature in the installation area",
"Poor airflow or blocked ventilation around the inverter",
"High load during hot weather",
"Cooling fan running at reduced speed or irregularly" },
NextSteps = new[] { "Improve ventilation around the inverter immediately",
"Temporarily reduce the load to allow the inverter to cool down",
"Check fan operation and clear any blocked vents",
"Monitor the temperature until it drops below the warning threshold" }
},
["NtcTemperatureSensorBroken"] = new()
{
Explanation = "The NTC temperature sensor in the inverter is faulty or disconnected.",
Causes = new[] { "The NTC sensor has failed due to aging or mechanical damage",
"The sensor cable is damaged or disconnected from the board",
"The sensor connector has come loose from the PCB" },
NextSteps = new[] { "Restart the inverter—if the sensor is truly faulty, the warning will remain after reboot",
"If the warning persists, a technician must inspect and replace the NTC sensor in the inverter" }
},
["SyncSignalAbnormal"] = new()
{
Explanation = "The synchronization signal between parallel-connected inverters is abnormal.",
Causes = new[] { "The synchronization cable between parallel-connected inverters is damaged or disconnected",
"The synchronization communication interface is faulty",
"Configuration differences between the units" },
NextSteps = new[] { "Check the synchronization cable connections between all parallel-connected inverter units",
"Ensure the parallel communication settings match on all units",
"Replace the cable if it is damaged" }
},
["GridStartupConditionsNotMet"] = new()
{
Explanation = "The grid connection startup conditions are not met. The inverter is waiting for the grid to meet required parameters before connecting.",
Causes = new[] { "Grid voltage or frequency is outside the permissible range for connection",
"The grid startup voltage threshold is incorrectly configured" },
NextSteps = new[] { "Check if the grid voltage is within the inverter’s permissible operating range",
"Review the configuration settings for grid connection voltage and frequency" }
},
["BatteryCommunicationFailure"] = new()
{
Explanation = "The inverter cannot communicate with the battery BMS (Battery Management System). Without BMS communication, charging and discharging cannot be safely controlled.",
Causes = new[] { "The battery BMS is offline or powered off",
"The RS485 or CAN communication cable between the inverter and battery is faulty or disconnected",
"The communication protocol between the inverter and battery does not match",
"The battery is in standby mode—BMS has activated energy-saving mode" },
NextSteps = new[] { "Ensure the battery system is powered on and not in standby mode",
"Check the RS485 communication cable between the inverter and battery for damage",
"Verify that the battery communication protocol setting in the inverter matches the battery BMS",
"Wake the battery from standby by pressing the battery power button" }
},
["BatteryDisconnected"] = new()
{
Explanation = "The battery is not connected to the inverter. The system is running without battery storage.",
Causes = new[] { "The battery circuit breaker or disconnect switch is turned off",
"The battery cable is loose or disconnected",
"The BMS has shut down the battery due to a protection event",
"A battery hardware fault is preventing connection" },
NextSteps = new[] { "Check if the battery circuit breaker is turned on",
"Inspect the battery cable connections at the inverter and battery terminals",
"Check the BMS status indicators for error or protection codes",
"Resolve any BMS protection events before reconnecting the battery" }
},
["BatteryVoltageTooHigh"] = new()
{
Explanation = "The battery voltage exceeds the allowed maximum. Charging may have pushed the voltage beyond safe limits.",
Causes = new[] { "The battery was charged beyond its maximum voltage limit",
"A BMS fault allowed the voltage to rise too high",
"Cell imbalance causes individual cells to be overcharged",
"Incorrect maximum charging voltage setting in the inverter" },
NextSteps = new[] { "Check the battery voltage and compare it with the manufacturer’s maximum specification",
"Adjust the charging voltage settings in the inverter",
"Verify the BMS function—it should protect against overvoltage" }
},
["BatteryVoltageTooLow"] = new()
{
Explanation = "The battery voltage is below the allowed minimum. The battery is deeply discharged.",
Causes = new[] { "The battery was discharged below its minimum safe voltage",
"Individual battery cells are faulty and lowering the pack voltage",
"High load discharges the battery faster than it can be charged",
"The BMS low-voltage cutoff was activated" },
NextSteps = new[] { "Check the battery voltage and compare it with the manufacturer’s minimum specification",
"Recharge the battery—first using grid power if solar power is insufficient",
"If the voltage is extremely low, the battery may need professional recovery charging" }
},
["BatteryReverseConnected"] = new()
{
Explanation = "The battery is connected with reversed polarity. This is dangerous and can cause immediate damage.",
Causes = new[] { "Battery positive and negative terminals were swapped during installation",
"Installation error—a serious wiring mistake" },
NextSteps = new[] { "IMMEDIATELY SHUT DOWN the entire system—do not charge or discharge",
"Check all battery cable connections before touching anything",
"Have a qualified electrician verify and correct the battery polarity",
"Inspect for damage to cables, fuses, or the inverter before restarting the system" }
},
["LeadAcidTempSensorDisconnected"] = new()
{
Explanation = "The temperature sensor for the lead-acid battery is disconnected or not installed.",
Causes = new[] { "The temperature sensor was not installed with the battery",
"The sensor cable is loose or damaged",
"The sensor plug was disconnected from the battery or inverter" },
NextSteps = new[] { "Check if a temperature sensor is installed on the lead-acid battery—it is typically a small probe attached to the battery",
"Inspect the sensor cable connections at both ends",
"Install or reconnect the sensor according to the installation instructions" }
},
["BatteryTemperatureOutOfRange"] = new()
{
Explanation = "The battery temperature is outside the safe range for charging or discharging.",
Causes = new[] { "High ambient temperature in the battery installation area",
"Poor battery ventilation leads to heat buildup",
"Battery overheats during heavy charging or discharging",
"Very cold ambient temperatures in winter reduce battery performance" },
NextSteps = new[] { "Check the ambient temperature in the battery installation area",
"Improve battery ventilation or relocate the battery to a cooler place if overheating",
"In cold climates, ensure the battery is not exposed to frost—charging is usually not allowed below 0°C" }
},
["BmsFault"] = new()
{
Explanation = "The battery's BMS has reported a fault that prevents normal charging and discharging.",
Causes = new[] { "Internal BMS malfunction or battery-triggered protection",
"Individual cell protection activated due to over/under-voltage or temperature",
"BMS communication error causing a fault message" },
NextSteps = new[] { "Check the battery system display or indicator lights for a BMS-specific fault or error code",
"Refer to the battery manufacturer’s documentation for the specific BMS error code",
"Contact battery support if the BMS fault cannot be resolved by restarting" }
},
["LithiumBatteryOverload"] = new()
{
Explanation = "The battery’s overload protection has activated—the load is drawing more power than the battery can supply.",
Causes = new[] { "Total load power exceeds the battery’s maximum discharge capacity",
"High inrush current from large motors or compressors temporarily exceeds battery limits" },
NextSteps = new[] { "Check the total load power and compare it to the battery’s rated discharge capacity",
"Reduce the load by turning off high-power devices",
"Stagger the startup of large devices to lower peak demand" }
},
["BmsCommunicationAbnormal"] = new()
{
Explanation = "Communication with the BMS is disrupted—data is received irregularly or with errors.",
Causes = new[] { "Communication timeout due to cable quality or length",
"Protocol mismatch or incorrect baud rate",
"Physical cable defect causing an interrupted connection" },
NextSteps = new[] { "Restart the inverter to re-establish communication",
"Inspect the BMS communication cable for damage or loose connections",
"Ensure communication parameters (protocol, baud rate) match between the inverter and BMS" }
},
["BatterySpdAbnormal"] = new()
{
Explanation = "The battery-side surge protection device (SPD) is malfunctioning.",
Causes = new[] { "Battery SPD was triggered by a voltage surge",
"SPD is faulty or has reached the end of its lifespan",
"Lightning-induced voltage surge in the battery wiring" },
NextSteps = new[] { "Turn off the system and check the battery SPD indicator",
"Replace the SPD if it shows a tripped or faulty state",
"Restart the system after replacement" }
},
["OutputDcComponentBiasAbnormal"] = new()
{
Explanation = "An abnormal DC offset component in the output may affect sensitive connected devices.",
Causes = new[] { "Control loop drift causing DC offset in the AC output",
"Output measurement sensor calibration drift",
"Hardware fault in the output stage" },
NextSteps = new[] { "Restart the inverter—DC offset faults often clear after a reboot",
"If the fault persists, contact the manufacturer for service" }
},
["DcComponentOverHighOutputVoltage"] = new()
{
Explanation = "The DC component in the output voltage is too high, which may affect sensitive devices and indicates a control issue.",
Causes = new[] { "Control circuit drift causing a DC voltage shift in the output voltage",
"Faulty output voltage sensor",
"Transformer saturation or issue in the DC path" },
NextSteps = new[] { "Restart the inverter to reset the control circuits",
"Check the output voltage for DC shift if devices are affected" }
},
["OffGridOutputVoltageTooLow"] = new()
{
Explanation = "The off-grid (EPS/backup) output voltage is too low to properly power connected devices.",
Causes = new[] { "The load exceeds the inverter’s backup capacity, causing a voltage drop",
"The battery voltage is too low to maintain a stable output voltage",
"Internal inverter limitation" },
NextSteps = new[] { "Restart the inverter",
"Reduce the load on the backup output",
"Charge the battery if its state of charge is low",
"If the issue persists, contact the manufacturer" }
},
["OffGridOutputVoltageTooHigh"] = new()
{
Explanation = "The off-grid output voltage is too high, which could damage connected devices.",
Causes = new[] { "Control error causing the output voltage regulation to be set too high",
"Voltage reference error in the control system" },
NextSteps = new[] { "Restart the inverter",
"If the issue persists, contact the manufacturer immediately, as high output voltage can damage devices" }
},
["OffGridOutputOverCurrent"] = new()
{
Explanation = "The off-grid output current exceeds the overcurrent limit.",
Causes = new[] { "Total load current exceeds the inverter’s rated current for the backup output",
"Short circuit in one of the backup devices",
"Inrush current from a large motor" },
NextSteps = new[] { "Check that all devices on the backup output are within the inverter’s current rating",
"Disconnect devices one by one to identify a faulty unit",
"Repair or remove the overloading device before restarting the inverter" }
},
["OffGridBusVoltageTooLow"] = new()
{
Explanation = "The DC voltage in off-grid mode has dropped too low to maintain stable operation.",
Causes = new[] { "Battery charge level is too low",
"Excessive load on the off-grid output",
"Fault or loose connection in the DC bus wiring" },
NextSteps = new[] { "Reduce the load on the off-grid output",
"Check the battery charge level and charge if needed",
"Inspect the DC bus wiring for loose connections or damage" }
},
["OffGridOutputOverload"] = new()
{
Explanation = "The off-grid (EPS/backup) output is overloaded—more power is being drawn than the inverter can supply in backup mode.",
Causes = new[] { "The total load on the EPS output exceeds the inverter’s backup capacity",
"Too many devices are connected to the backup circuit at the same time",
"A large motor or compressor is causing an excessive startup current" },
NextSteps = new[] { "Check that all appliances are within the inverter’s EPS output specifications",
"Reduce the number of devices connected to the backup circuit",
"Stagger the startup of large appliances during backup operation" }
},
["BalancedCircuitAbnormal"] = new()
{
Explanation = "The phase-balancing circuit is not working normally.",
Causes = new[] { "Internal fault in the phase-balancing circuit",
"Control issue affecting phase balancing" },
NextSteps = new[] { "Restart the inverter",
"If the fault persists, check phase-balancing settings and contact service" }
},
["ExportLimitationFailSafe"] = new()
{
Explanation = "The export limitation fail-safe has been triggered. The inverter is no longer feeding power into the grid because it cannot verify compliance with export limits.",
Causes = new[] { "The current transformer (CT) is disconnected or measuring incorrectly",
"Communication with the meter is interrupted, preventing export monitoring",
"The export limitation feedback has failed—the inverter cannot confirm controlled grid export" },
NextSteps = new[] { "Turn off the system before inspecting CT or meter connections",
"Check that the current transformer (CT) is installed correctly and securely connected",
"Verify that the energy meter’s communication cable is intact",
"Confirm export limitation settings and feedback, then restart" }
},
["DcBiasAbnormal"] = new()
{
Explanation = "The DC injection protection (DCI) has detected abnormal DC bias in the AC output—a safety mechanism to prevent DC from being fed into the grid.",
Causes = new[] { "DC injection into the grid from the inverter output",
"Faulty output current sensor providing incorrect readings",
"Transformer saturation or control issue" },
NextSteps = new[] { "Restart the inverter—this may resolve temporary DCI faults",
"If the fault persists, professional service is required" }
},
["HighDcComponentOutputCurrent"] = new()
{
Explanation = "A high DC component in the AC output current has been detected. This is a protective state.",
Causes = new[] { "Output filter issue allowing DC components to pass through",
"Control error affecting the symmetry of the current waveform",
"Output transformer saturation" },
NextSteps = new[] { "Restart the inverter",
"Check the quality of the output current waveform if measuring equipment is available",
"If the fault persists, contact the manufacturer for service" }
},
["BusVoltageSamplingAbnormal"] = new()
{
Explanation = "The DC voltage measurement is faulty—the sensor is providing incorrect readings.",
Causes = new[] { "Faulty voltage sensor or measurement circuit",
"Issue with the control board’s analog-to-digital converter (ADC)",
"Hardware problem affecting measurement accuracy" },
NextSteps = new[] { "Restart the inverter",
"If the issue persists, professional servicing of the measurement circuit is required" }
},
["RelayFault"] = new()
{
Explanation = "An internal relay fault has been detected—the relay is not functioning as expected.",
Causes = new[] { "Relay is defective—contacts stuck open or closed",
"Contacts welded due to overcurrent",
"Fault in the relay control circuit" },
NextSteps = new[] { "Restart the inverter to reset the relay",
"If the fault remains, the relay likely needs replacement—contact service" }
},
["BusVoltageAbnormal"] = new()
{
Explanation = "The internal DC voltage is abnormal.",
Causes = new[] { "Fault in power electronics affecting DC voltage regulation",
"Issue with the capacitor in the DC circuit",
"Failure of the control system" },
NextSteps = new[] { "Restart the inverter",
"If the issue persists, professional inspection of the system is required" }
},
["InternalCommunicationFailure"] = new()
{
Explanation = "Internal communication between the inverter’s control boards has failed.",
Causes = new[] { "Fault or failure of the communication board",
"Internal ribbon cable or connector is loose",
"Electromagnetic interference (EMI) disrupting internal communication" },
NextSteps = new[] { "Turn off the inverter, wait 30 seconds, then restart to check if communication is restored",
"If the issue persists, a technician should open the inverter and inspect internal communication connections" }
},
["TemperatureSensorDisconnected"] = new()
{
Explanation = "A temperature sensor in the inverter is disconnected, disabling thermal monitoring.",
Causes = new[] { "Sensor element is faulty or detached from its mount",
"Sensor cable is damaged or disconnected",
"Sensor connector is unplugged from the circuit board" },
NextSteps = new[] { "Turn off the inverter and check internal sensor wiring if accessible",
"If not accessible, contact a service technician to inspect and replace the sensor" }
},
["IgbtDriveFault"] = new()
{
Explanation = "A fault in the IGBT drive circuit has been detected. The IGBT is not being controlled correctly, which may affect power conversion.",
Causes = new[] { "Failure of the drive circuit",
"Defective IGBT transistor — the component may have failed",
"Power supply issue with the drive circuit" },
NextSteps = new[] { "Restart the inverter — temporary faults may clear",
"If the fault persists: professional service required — the IGBT or drive circuit may need replacement" }
},
["EepromError"] = new()
{
Explanation = "A read or write error has occurred in the EEPROM. The inverter’s non-volatile memory is not functioning properly.",
Causes = new[] { "Defective EEPROM chip — common after many years of operation",
"Data corruption in the EEPROM memory",
"Hardware failure in the memory circuit" },
NextSteps = new[] { "Restart the inverter — this may clear a temporary memory fault",
"If the fault persists: a factory reset may restore function; contact support before attempting" }
},
["AuxiliaryPowerAbnormal"] = new()
{
Explanation = "The internal auxiliary power supply is abnormal. This powers the control electronics.",
Causes = new[] { "Failure of a component in the auxiliary power supply",
"Fault in the voltage regulator on the control board" },
NextSteps = new[] { "Restart the inverter",
"If the fault persists: contact service — the auxiliary power supply may need replacement" }
},
["DcAcOvercurrentProtection"] = new()
{
Explanation = "The DC/AC overcurrent protection has been triggered — the current exceeded the safe limit.",
Causes = new[] { "Short circuit in the AC output wiring or connected loads",
"Severe overload far beyond the rated power",
"Fault in the power electronics causing overcurrent" },
NextSteps = new[] { "Restart the inverter after checking and clearing any possible short circuits",
"Inspect all connected loads for faults",
"Reduce the load before restarting the inverter" }
},
["CommunicationProtocolMismatch"] = new()
{
Explanation = "A protocol error between components has been detected.",
Causes = new[] { "Firmware versions of the control board do not match",
"Incorrect communication configuration" },
NextSteps = new[] { "Restart the inverter",
"If the fault persists: perform a full firmware update to ensure all components are on the same version" }
},
["DspComFirmwareMismatch"] = new()
{
Explanation = "The firmware versions of the DSP (signal processor) and COM (communication) boards do not match.",
Causes = new[] { "Firmware update was incomplete, leaving the boards with different versions",
"Incorrect firmware file was loaded onto one of the boards" },
NextSteps = new[] { "Restart the inverter",
"Perform a complete firmware update—ensure all boards are updated to the correct matching version" }
},
["DspSoftwareHardwareMismatch"] = new()
{
Explanation = "The DSP software version is not compatible with the hardware version.",
Causes = new[] { "Hardware board was replaced with a newer or older revision requiring a different firmware version" },
NextSteps = new[] { "Restart the inverter",
"Contact technical support to determine the correct firmware version for this hardware revision" }
},
["CpldAbnormal"] = new()
{
Explanation = "The CPLD (Complex Programmable Logic Device) in the inverter is not functioning correctly.",
Causes = new[] { "CPLD chip is defective or firmware is corrupted",
"Power supply issue affecting the CPLD" },
NextSteps = new[] { "Restart the inverter",
"If the problem persists: Professional maintenance required—the CPLD may need replacement or reprogramming" }
},
["RedundancySamplingInconsistent"] = new()
{
Explanation = "The redundant voltage or current measurement circuits are providing different results—the two measurement paths do not match.",
Causes = new[] { "One of the redundant sensors has drifted or is defective",
"ADC calibration error on one measurement channel",
"Hardware fault in one of the measurement circuits" },
NextSteps = new[] { "Restart the inverter to reset the measurement circuits",
"If the problem persists: Recalibration or sensor replacement required—contact service" }
},
["PwmPassThroughSignalFailure"] = new()
{
Explanation = "The PWM (Pulse-Width Modulation) pass-through signal path has failed.",
Causes = new[] { "Control board failure affecting PWM signal transmission",
"Hardware issue in the signal path" },
NextSteps = new[] { "Restart the inverter",
"If the problem persists: Contact service—internal board inspection required" }
},
["AfciSelfTestFailure"] = new()
{
Explanation = "The AFCI (arc fault circuit interrupter) self-test has failed. The AFCI protects against dangerous arcs in the PV wiring.",
Causes = new[] { "Fault in the AFCI detection module preventing the self-test",
"Issue in the self-test circuit on the control board" },
NextSteps = new[] { "Restart the inverter to attempt the self-test again",
"If the self-test continues to fail, the AFCI module may need replacement—contact service" }
},
["PvCurrentSamplingAbnormal"] = new()
{
Explanation = "The PV current measurement is showing unusual values.",
Causes = new[] { "Fault in the PV current sensor or Hall sensor",
"ADC error in the current measurement channel" },
NextSteps = new[] { "Restart the inverter",
"If the issue persists, the current sensor circuit must be checked by a professional" }
},
["AcCurrentSamplingAbnormal"] = new()
{
Explanation = "The AC current measurement is showing unusual values.",
Causes = new[] { "Fault in the CT sensor (current transformer) or incorrect connection",
"Fault in the AC current sensor",
"ADC error in the AC measurement channel" },
NextSteps = new[] { "Restart the inverter",
"Check the CT connections and orientation if accessible",
"If the issue persists, the measurement circuit must be checked by a professional" }
},
["BusSoftbootFailure"] = new()
{
Explanation = "The DC bus failed to pre-charge correctly during startup (pre-conditioning).",
Causes = new[] { "Fault in the pre-charge circuit preventing controlled capacitor charging",
"Issue with the DC bus capacitor",
"Fault in the pre-charge relay or contactor" },
NextSteps = new[] { "Restart the inverter",
"If the issue persists, the pre-charge circuit must be checked by a professional" }
},
["EpoFault"] = new()
{
Explanation = "An EPO (emergency stop) fault has been triggered.",
Causes = new[] { "The EPO emergency stop button was pressed",
"The EPO circuit was activated by an external safety system",
"Fault in the EPO circuit causing an unintended shutdown" },
NextSteps = new[] { "Check if the EPO button was pressed—reset it if needed",
"Inspect the EPO circuit wiring if the activation was unintended",
"Restart the inverter after confirming the EPO circuit is clear" }
},
["MonitoringChipBootVerificationFailed"] = new()
{
Explanation = "The monitoring chip failed its startup verification — there may be an issue with the firmware or the boot sequence.",
Causes = new[] { "Firmware corruption on the monitoring chip",
"Hardware failure of the monitoring chip" },
NextSteps = new[] { "Restart the inverter — startup verification errors sometimes resolve on retry",
"If the issue persists, a firmware reload or chip replacement may be needed — contact service" }
},
["BmsCommunicationFailure"] = new()
{
Explanation = "The BMS cannot communicate with the inverter. Charging and discharging cannot be safely controlled without BMS communication.",
Causes = new[] { "The RS485 communication cable between the inverter and battery is damaged or disconnected",
"The BMS is powered off or not responding",
"Communication protocol incompatibility between the inverter and BMS" },
NextSteps = new[] { "Check the RS485 cable connection between the inverter and battery — inspect both ends",
"Ensure the battery is powered on and the BMS is active",
"Verify the communication settings match the battery BMS" }
},
["BmsChargeDischargeFailure"] = new()
{
Explanation = "The BMS has reported that the battery cannot be charged or discharged.",
Causes = new[] { "Internal BMS protection triggered — cell over/under-voltage or temperature fault",
"Hardware failure in the BMS blocking charge/discharge operations",
"BMS-detected issue with a battery cell" },
NextSteps = new[] { "Check the battery display or BMS indicator for a specific error code",
"Refer to the battery manufacturer’s documentation for the BMS error code",
"Contact battery support if the issue cannot be resolved" }
},
["BatteryVoltageLow"] = new()
{
Explanation = "The battery voltage is below the minimum allowed threshold.",
Causes = new[] { "The battery was deeply discharged below the safe minimum voltage",
"Failure of an individual cell reducing the overall pack voltage" },
NextSteps = new[] { "Check the battery voltage — if critically low, professional recharging may be required",
"Allow the battery to charge slowly from the grid before resuming normal operation" }
},
["BatteryVoltageHigh"] = new()
{
Explanation = "The battery voltage exceeds the maximum allowed upper limit.",
Causes = new[] { "The battery was overcharged beyond its maximum voltage",
"BMS failure allowing voltage to rise without protection",
"Failure of an individual cell causing high voltage in part of the pack" },
NextSteps = new[] { "Check the battery voltage and compare it to the manufacturer’s maximum specification",
"If the voltage is within the allowed range, restart the inverter",
"If the voltage is truly too high, stop charging immediately and contact battery service" }
},
["BatteryTemperatureAbnormal"] = new()
{
Explanation = "The battery temperature is outside the safe range for charging or discharging.",
Causes = new[] { "Battery is too hot — poor ventilation or high ambient temperature",
"Battery is too cold — frozen or near-freezing environment",
"Battery temperature sensor is faulty and reporting incorrect values" },
NextSteps = new[] { "Check the physical temperature of the battery if it is safe to do so",
"Improve battery ventilation if overheating",
"Allow the battery to warm up before charging if too cold",
"Check sensor connections if the temperature reading appears incorrect" }
},
["BatteryReversed"] = new()
{
Explanation = "The battery is connected with reversed polarity — positive and negative terminals are swapped.",
Causes = new[] { "Battery positive and negative cables are connected to the wrong inverter terminals",
"Installation error" },
NextSteps = new[] { "Immediately shut down the entire system — reversed polarity can cause severe damage",
"Have a qualified electrician check and correct the battery polarity before restarting the system" }
},
["BatteryOpenCircuit"] = new()
{
Explanation = "The battery circuit is open — the battery is not electrically connected.",
Causes = new[] { "Battery cable has come loose or disconnected from the terminal",
"Battery fuse is blown, breaking the circuit",
"BMS has opened the internal switch due to a protection event" },
NextSteps = new[] { "Check all battery cable connections at the inverter and battery terminals",
"Inspect the battery fuse and replace it if blown",
"Check the BMS status for protection events that may have opened the battery switch" }
},
["BatteryOverloadProtection"] = new()
{
Explanation = "Battery overload protection has activated — the load is drawing more current than the battery can safely discharge.",
Causes = new[] { "Total load power exceeds the battery’s maximum rated discharge capacity",
"High current surge from large appliances temporarily exceeding the battery’s rated power" },
NextSteps = new[] { "Check the total load and compare it with the battery’s rated discharge capacity",
"Reduce high-power loads and restart the inverter" }
},
["Bus2VoltageAbnormal"] = new()
{
Explanation = "The voltage of the secondary DC bus is abnormal.",
Causes = new[] { "Fault in the power electronics affecting the secondary DC bus",
"Control issue with the secondary converter" },
NextSteps = new[] { "Restart the inverter",
"If the problem persists, professional inspection is required" }
},
["BatteryChargeOcp"] = new()
{
Explanation = "The battery charging overcurrent protection (OCP) has tripped—the charging current is too high.",
Causes = new[] { "The PV system is supplying more power than the battery can safely accept",
"The battery charging current limit is set too high for the battery specifications" },
NextSteps = new[] { "Check if the PV system output significantly exceeds the battery charging capacity",
"Adjust the maximum charging current setting in the inverter to match the battery specifications" }
},
["BatteryDischargeOcp"] = new()
{
Explanation = "The battery discharging overcurrent protection (OCP) has tripped—the discharging current is too high.",
Causes = new[] { "The connected load is drawing more current than the battery can safely provide",
"The battery discharge current limit is set too high" },
NextSteps = new[] { "Verify that the battery discharge current configuration matches the battery specifications",
"Reduce the connected load to stay within the battery discharge limits" }
},
["BatterySoftStartFailed"] = new()
{
Explanation = "The battery failed to complete the soft-start sequence when connecting to the inverter.",
Causes = new[] { "Fault in the pre-charge circuit preventing a controlled battery connection",
"Battery voltage differs significantly from the inverter’s DC bus voltage" },
NextSteps = new[] { "Restart the inverter",
"Compare the battery voltage with the DC bus voltage—a large difference may prevent soft-start" }
},
["EpsOutputShortCircuited"] = new()
{
Explanation = "The EPS (emergency power supply) output has a short circuit.",
Causes = new[] { "Short circuit in the load wiring connected to the emergency power output",
"A faulty device is causing a short circuit in the emergency power circuit",
"Wiring harness fault in the EPS output distribution" },
NextSteps = new[] { "Disconnect all loads from the emergency power output",
"Identify and repair the short circuit in the load wiring or devices before reconnecting" }
},
["OffGridBusVoltageLow"] = new()
{
Explanation = "The off-grid DC bus voltage is too low to maintain emergency power operation.",
Causes = new[] { "The battery is nearly empty and cannot maintain the DC bus voltage",
"High emergency power load combined with low battery charge",
"Battery capacity loss due to aging" },
NextSteps = new[] { "Check if the battery is functioning properly and has no significant capacity loss",
"Charge the battery before attempting emergency power operation",
"Reduce the emergency power load to extend the available battery runtime" }
},
["OffGridTerminalVoltageAbnormal"] = new()
{
Explanation = "An abnormal voltage was detected at the off-grid AC output.",
Causes = new[] { "External voltage is present at the backup power output",
"Cable connection to the backup power output is faulty",
"Feedback from a load with its own power source" },
NextSteps = new[] { "Check if an external power source is connected to the backup power output",
"Verify if the backup power output cable is connected to another power source",
"Disconnect all loads from the backup power output and check cables before restarting the system" }
},
["SoftStartFailed"] = new()
{
Explanation = "The soft start in off-grid mode has failed.",
Causes = new[] { "Preconditioning during off-grid startup failed",
"Load is too high during off-grid startup" },
NextSteps = new[] { "Restart the inverter",
"Reduce the initial load in the backup power circuit" }
},
["OffGridOutputVoltageAbnormal"] = new()
{
Explanation = "The output voltage in off-grid mode is abnormal.",
Causes = new[] { "Control error affecting voltage regulation",
"Hardware issue in the output section",
"Overload causing the output voltage to collapse" },
NextSteps = new[] { "Restart the inverter",
"If the issue persists, contact the manufacturer" }
},
["BalancedCircuitSelfTestFailed"] = new()
{
Explanation = "The balancing circuit self-test failed during startup.",
Causes = new[] { "Fault detected in the phase balancing circuit",
"Hardware issue in the balancing circuit" },
NextSteps = new[] { "Restart the inverter to repeat the self-test",
"If the issue persists, contact service" }
},
["HighDcComponentOutputVoltage"] = new()
{
Explanation = "A high DC voltage component was detected in the AC output voltage.",
Causes = new[] { "Control loop drift causing a DC voltage shift",
"Issue with the output transformer or filter" },
NextSteps = new[] { "Restart the inverter to reset the control loops",
"If the issue persists, contact the manufacturer" }
},
["OffGridParallelSignalAbnormal"] = new()
{
Explanation = "The communication signal between inverter units in parallel operation is disrupted.",
Causes = new[] { "The parallel communication cable between units is damaged or disconnected",
"Parallel configuration settings do not match between units" },
NextSteps = new[] { "Check that all parallel communication cables between inverter units are properly and securely connected",
"Ensure parallel settings are identical on all units" }
},
["AFCIFault"] = new()
{
Explanation = "An arc fault has been detected in the PV system. Arcing can cause fires in PV wiring, so the system has shut down for safety.",
Causes = new[] { "Loose MC4 connectors or PV cable connections causing intermittent arcing",
"Damaged cable insulation allowing arcing at the damaged point",
"Faulty connector or junction box creating an arcing path",
"Damaged module junction box" },
NextSteps = new[] { "Turn off all DC disconnect switches before inspecting PV wiring",
"Carefully check all PV string connections, MC4 connectors, and cable runs for damage",
"Tighten any loose connectors and replace any damaged cables or connectors",
"Have the installation professionally inspected if the source of the arc fault is not found" }
},
["GFCIHigh"] = new()
{
Explanation = "An excessively high fault current (leakage current) has been detected in the PV system.",
Causes = new[] { "Fault current in the PV array—typically a cable touching the frame or metal parts",
"Insulation failure in PV cables or module junction boxes",
"Moisture entering cable connections or module junction boxes",
"Cable damage exposing conductors" },
NextSteps = new[] { "Restart the inverter to check if the fault is cleared",
"If the fault persists, perform an insulation resistance test on all PV strings to locate the fault",
"Repair any identified insulation damage or fault currents before restarting the inverter" }
},
["PVVoltageHigh"] = new()
{
Explanation = "The DC input voltage from the PV array exceeds the absolute maximum safe limit, posing an immediate risk to the inverter.",
Causes = new[] { "Too many PV modules connected in series, exceeding the inverter’s maximum input voltage",
"Very cold temperatures causing the module open-circuit voltage to rise significantly above the design temperature open-circuit voltage" },
NextSteps = new[] { "Immediately disconnect the DC switch to protect the inverter",
"Measure the actual DC voltage before reconnecting",
"Review the string design and reduce the number of modules in series if needed to stay within the inverter’s voltage limits" }
},
};
}