]> git.basschouten.com Git - openhab-addons.git/blob
affed421c299d5fb0133d0a96916457192bf006c
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.senechome.internal;
14
15 /**
16  * The {@link SenecSystemStatus} class defines available Senec specific
17  * system states.
18  *
19  * @author Steven Schwarznau - Initial contribution
20  *
21  */
22 public enum SenecSystemStatus {
23
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"),
38     CHARGE(14, "CHARGE"),
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"),
44     OFF(20, "OFF"),
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");
125
126     private int code;
127     private String description;
128
129     SenecSystemStatus(int index, String description) {
130         this.code = index;
131         this.description = description;
132     }
133
134     public int getCode() {
135         return code;
136     }
137
138     public String getDescription() {
139         return description;
140     }
141
142     public static SenecSystemStatus fromCode(int code) {
143         for (SenecSystemStatus state : SenecSystemStatus.values()) {
144             if (state.code == code) {
145                 return state;
146             }
147         }
148         return SenecSystemStatus.UNKNOWN;
149     }
150
151     public static String descriptionFromCode(int code) {
152         for (SenecSystemStatus state : SenecSystemStatus.values()) {
153             if (state.code == code) {
154                 return state.description;
155             }
156         }
157         return SenecSystemStatus.UNKNOWN.description;
158     }
159 }