2 * Copyright (c) 2010-2024 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.senechome.internal;
16 * The {@link SenecSystemStatus} class defines available Senec specific
19 * @author Steven Schwarznau - Initial contribution
22 public enum SenecSystemStatus {
24 INITIALSTATE(0, "INITIAL STATE"),
25 ERROR_INVERTER_COMMUNICATION(1, "ERROR INVERTER COMMUNICATION"),
26 ERROR_ELECTRICY_METER(2, "ERROR ELECTRICY METER"),
27 RIPPLE_CONTROL_RECEIVER(3, "RIPPLE CONTROL RECEIVER"),
28 INITIAL_CHARGE(4, "INITIAL CHARGE"),
29 MAINTENANCE_CHARGE(5, "MAINTENANCE CHARGE"),
30 MAINTENANCE_READY(6, "MAINTENANCE READY"),
31 MAINTENANCE_REQUIRED(7, "MAINTENANCE REQUIRED"),
32 MAN_SAFETY_CHARGE(8, "MAN. SAFETY CHARGE"),
33 SAFETY_CHARGE_READY(9, "SAFETY CHARGE READY"),
34 FULL_CHARGE(10, "FULL CHARGE"),
35 EQUALIZATION_CHARGE(11, "EQUALIZATION: CHARGE"),
36 DESULFATATION_CHARGE(12, "DESULFATATION: CHARGE"),
37 BATTERY_FULL(13, "BATTERY FULL"),
39 BATTERY_EMPTY(15, "BATTERY EMPTY"),
40 DISCHARGE(16, "DISCHARGE"),
41 PV_AND_DISCHARGE(17, "PV + DISCHARGE"),
42 GRID_AND_DISCHARGE(18, "GRID + DISCHARGE"),
43 PASSIVE(19, "PASSIVE"),
45 OWN_CONSUMPTION(21, "OWN CONSUMPTION"),
46 RESTART(22, "RESTART"),
47 MAN_EQUALIZATION_CHARGE(23, "MAN. EQUALIZATION: CHARGE"),
48 MAN_DESULFATATION_CHARGE(24, "MAN. DESULFATATION: CHARGE"),
49 SAFETY_CHARGE(25, "SAFETY CHARGE"),
50 BATTERY_PROTECTION_MODE(26, "BATTERY PROTECTION MODE"),
51 EG_ERROR(27, "EG ERROR"),
52 EG_CHARGE(28, "EG CHARGE"),
53 EG_DISCHARGE(29, "EG DISCHARGE"),
54 EG_PASSIVE(30, "EG PASSIVE"),
55 EG_PROHIBIT_CHARGE(31, "EG PROHIBIT CHARGE"),
56 EG_PROHIBIT_DISCHARGE(32, "EG PROHIBIT DISCHARGE"),
57 EMERGANCY_CHARGE(33, "EMERGANCY CHARGE"),
58 SOFTWARE_UPDATE(34, "SOFTWARE UPDATE"),
59 NSP_ERROR(35, "NSP ERROR"),
60 NSP_ERROR_GRID(36, "NSP ERROR: GRID"),
61 NSP_ERROR_HARDWRE(37, "NSP ERROR: HARDWRE"),
62 NO_SERVER_CONNECTION(38, "NO SERVER CONNECTION"),
63 BMS_ERROR(39, "BMS ERROR"),
64 MAINTENANCE_FILTER(40, "MAINTENANCE: FILTER"),
65 BMS_SHUTDOWN(41, "BMS SHUTDOWN"),
66 WAITING_EXCESS(42, "WAITING EXCESS"),
67 CAPACITY_TEST_CHARGE(43, "CAPACITY TEST: CHARGE"),
68 CAPACITY_TEST_DISCHARGE(44, "CAPACITY TEST: DISCHARGE"),
69 MAN_DESULFATATION_WAIT(45, "MAN. DESULFATATION: WAIT"),
70 MAN_DESULFATATION_READY(46, "MAN. DESULFATATION: READY"),
71 MAN_DESULFATATION_ERROR(47, "MAN. DESULFATATION: ERROR"),
72 EQUALIZATION_WAIT(48, "EQUALIZATION: WAIT"),
73 EMERGANCY_CHARGE_ERROR(49, "EMERGANCY CHARGE: ERROR"),
74 MAN_EQUALIZATION_WAIT(50, "MAN. EQUALIZATION: WAIT"),
75 MAN_EQUALIZATION_ERROR(51, "MAN. EQUALIZATION: ERROR"),
76 MAN_EQUALIZATION_READY(52, "MAN: EQUALIZATION: READY"),
77 AUTO_DESULFATATION_WAIT(53, "AUTO. DESULFATATION: WAIT"),
78 ABSORPTION_PHASE(54, "ABSORPTION PHASE"),
79 DCSWITCH_OFF(55, "DC-SWITCH OFF"),
80 PEAKSHAVING_WAIT(56, "PEAK-SHAVING: WAIT"),
81 ERROR_BATTERY_INVERTER(57, "ERROR BATTERY INVERTER"),
82 NPUERROR(58, "NPU-ERROR"),
83 BMS_OFFLINE(59, "BMS OFFLINE"),
84 MAINTENANCE_CHARGE_ERROR(60, "MAINTENANCE CHARGE ERROR"),
85 MAN_SAFETY_CHARGE_ERROR(61, "MAN. SAFETY CHARGE ERROR"),
86 SAFETY_CHARGE_ERROR(62, "SAFETY CHARGE ERROR"),
87 NO_CONNECTION_TO_MASTER(63, "NO CONNECTION TO MASTER"),
88 LITHIUM_SAFE_MODE_ACTIVE(64, "LITHIUM SAFE MODE ACTIVE"),
89 LITHIUM_SAFE_MODE_DONE(65, "LITHIUM SAFE MODE DONE"),
90 BATTERY_VOLTAGE_ERROR(66, "BATTERY VOLTAGE ERROR"),
91 BMS_DC_SWITCHED_OFF(67, "BMS DC SWITCHED OFF"),
92 GRID_INITIALIZATION(68, "GRID INITIALIZATION"),
93 GRID_STABILIZATION(69, "GRID STABILIZATION"),
94 REMOTE_SHUTDOWN(70, "REMOTE SHUTDOWN"),
95 OFFPEAKCHARGE(71, "OFFPEAK-CHARGE"),
96 ERROR_HALFBRIDGE(72, "ERROR HALFBRIDGE"),
97 BMS_ERROR_OPERATING_TEMPERATURE(73, "BMS: ERROR OPERATING TEMPERATURE"),
98 FACOTRY_SETTINGS_NOT_FOUND(74, "FACOTRY SETTINGS NOT FOUND"),
99 BACKUP_POWER_MODE_ACTIVE(75, "BACKUP POWER MODE - ACTIVE"),
100 BACKUP_POWER_MODE_BATTERY_EMPTY(76, "BACKUP POWER MODE - BATTERY EMPTY"),
101 BACKUP_POWER_MODE_ERROR(77, "BACKUP POWER MODE ERROR"),
102 INITIALISING(78, "INITIALISING"),
103 INSTALLATION_MODE(79, "INSTALLATION MODE"),
104 GRID_OFFLINE(80, "GRID OFFLINE"),
105 BMS_UPDATE_NEEDED(81, "BMS UPDATE NEEDED"),
106 BMS_CONFIGURATION_NEEDED(82, "BMS CONFIGURATION NEEDED"),
107 INSULATION_TEST(83, "INSULATION TEST"),
108 SELFTEST(84, "SELFTEST"),
109 EXTERNAL_CONTROL(85, "EXTERNAL CONTROL"),
110 ERROR_TEMPERATURESENSOR(86, "ERROR: TEMPERATURESENSOR"),
111 GRID_OPERATOR_CHARGE_PROHIBITED(87, "GRID OPERATOR: CHARGE PROHIBITED"),
112 GRID_OPERATOR_DISCHARGE_PROHIBITED(88, "GRID OPERATOR: DISCHARGE PROHIBITED"),
113 SPARE_CAPACITY(89, "SPARE CAPACITY"),
114 SELFTEST_ERROR(90, "SELFTEST ERROR"),
115 EARTH_FAULT(91, "EARTH FAULT"),
116 PVMODE(92, "PV-MODE"),
117 REMOTE_DISCONNECTION(93, "REMOTE DISCONNECTION"),
118 ERROR_DRM0(94, "ERROR DRM0"),
119 BATTERY_DIAGNOSIS(95, "BATTERY DIAGNOSIS"),
120 BALANCING(96, "BALANCING"),
121 SAFETY_DISCHARGE(97, "SAFETY DISCHARGE"),
122 BMS_ERROR_MODULE_IMBALANCE(98, "BMS ERROR - MODULE IMBALANCE"),
123 WAKEUP_CHARGE(99, "WAKE-UP CHARGE"),
124 UNKNOWN(-1, "UNKNOWN");
127 private String description;
129 SenecSystemStatus(int index, String description) {
131 this.description = description;
134 public int getCode() {
138 public String getDescription() {
142 public static SenecSystemStatus fromCode(int code) {
143 for (SenecSystemStatus state : SenecSystemStatus.values()) {
144 if (state.code == code) {
148 return SenecSystemStatus.UNKNOWN;
151 public static String descriptionFromCode(int code) {
152 for (SenecSystemStatus state : SenecSystemStatus.values()) {
153 if (state.code == code) {
154 return state.description;
157 return SenecSystemStatus.UNKNOWN.description;