]> git.basschouten.com Git - openhab-addons.git/blob
71165da690117f3c3acf379713bc9287594659ef
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 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.luxtronikheatpump.internal.enums;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
18
19 /**
20  * Represents all heat pump types
21  *
22  * @author Stefan Giehl - Initial contribution
23  */
24 @NonNullByDefault
25 public enum HeatpumpType {
26     TYPE_ERC(0, "ERC"),
27     TYPE_SW1(1, "SW1"),
28     TYPE_SW2(2, "SW2"),
29     TYPE_WW1(3, "WW1"),
30     TYPE_WW2(4, "WW2"),
31     TYPE_L1I(5, "L1I"),
32     TYPE_L2I(6, "L2I"),
33     TYPE_L1A(7, "L1A"),
34     TYPE_L2A(8, "L2A"),
35     TYPE_KSW(9, "KSW"),
36     TYPE_KLW(10, "KLW"),
37     TYPE_SWC(11, "SWC"),
38     TYPE_LWC(12, "LWC"),
39     TYPE_L2G(13, "L2G"),
40     TYPE_WZS(14, "WZS"),
41     TYPE_L1I407(15, "L1I407"),
42     TYPE_L2I407(16, "L2I407"),
43     TYPE_L1A407(17, "L1A407"),
44     TYPE_L2A407(18, "L2A407"),
45     TYPE_L2G407(19, "L2G407"),
46     TYPE_LWC407(20, "LWC407"),
47     TYPE_L1AREV(21, "L1AREV"),
48     TYPE_L2AREV(22, "L2AREV"),
49     TYPE_WWC1(23, "WWC1"),
50     TYPE_WWC2(24, "WWC2"),
51     TYPE_L2G404(25, "L2G404"),
52     TYPE_WZW(26, "WZW"),
53     TYPE_L1S(27, "L1S"),
54     TYPE_L1H(28, "L1H"),
55     TYPE_L2H(29, "L2H"),
56     TYPE_WZWD(30, "WZWD"),
57     TYPE_ERC2(31, "ERC"),
58     TYPE_WWB_20(40, "WWB_20"),
59     TYPE_LD5(41, "LD5"),
60     TYPE_LD7(42, "LD7"),
61     TYPE_SW_37_45(43, "SW 37_45"),
62     TYPE_SW_58_69(44, "SW 58_69"),
63     TYPE_SW_29_56(45, "SW 29_56"),
64     TYPE_LD5_230V(46, "LD5 (230V)"),
65     TYPE_LD7_230V(47, "LD7 (230 V)"),
66     TYPE_LD9(48, "LD9"),
67     TYPE_LD5_REV(49, "LD5 REV"),
68     TYPE_LD7_REV(50, "LD7 REV"),
69     TYPE_LD5_REV_230V(51, "LD5 REV 230V"),
70     TYPE_LD7_REV_230V(52, "LD7 REV 230V"),
71     TYPE_LD9_REV_230V(53, "LD9 REV 230V"),
72     TYPE_SW_291(54, "SW 291"),
73     TYPE_LW_SEC(55, "LW SEC"),
74     TYPE_HMD_2(56, "HMD 2"),
75     TYPE_MSW_4(57, "MSW 4"),
76     TYPE_MSW_6(58, "MSW 6"),
77     TYPE_MSW_8(59, "MSW 8"),
78     TYPE_MSW_10(60, "MSW 10"),
79     TYPE_MSW_12(61, "MSW 12"),
80     TYPE_MSW_14(62, "MSW 14"),
81     TYPE_MSW_17(63, "MSW 17"),
82     TYPE_MSW_19(64, "MSW 19"),
83     TYPE_MSW_23(65, "MSW 23"),
84     TYPE_MSW_26(66, "MSW 26"),
85     TYPE_MSW_30(67, "MSW 30"),
86     TYPE_MSW_4S(68, "MSW 4S"),
87     TYPE_MSW_6S(69, "MSW 6S"),
88     TYPE_MSW_8S(70, "MSW 8S"),
89     TYPE_MSW_10S(71, "MSW 10S"),
90     TYPE_MSW_13S(72, "MSW 13S"),
91     TYPE_MSW_16S(73, "MSW 16S"),
92     TYPE_MSW2_6S(74, "MSW2-6S"),
93     TYPE_MSW4_16(75, "MSW4-16"),
94     TYPE_LD2AG(76, "LD2AG"),
95     TYPE_LWD90V(77, "LWD90V"),
96     TYPE_MSW3_12(78, "MSW3-12"),
97     TYPE_MSW3_12S(79, "MSW3-12S"),
98     TYPE_MSW2_9S(80, "MSW2-9S"),
99     TYPE_LW8(81, "LW 8"),
100     TYPE_LW12(82, "LW 12"),
101     TYPE_UNKNOWN(-1, "Unknown");
102
103     private final String name;
104     private final Integer code;
105     private static final Logger logger = LoggerFactory.getLogger(HeatpumpType.class);
106
107     private HeatpumpType(Integer code, String name) {
108         this.code = code;
109         this.name = name;
110     }
111
112     public static HeatpumpType fromCode(Integer code) {
113         for (HeatpumpType error : HeatpumpType.values()) {
114             if (error.code.equals(code)) {
115                 return error;
116             }
117         }
118
119         logger.warn("Unknown heatpump type code {}", code);
120
121         return TYPE_UNKNOWN;
122     }
123
124     public String getName() {
125         return name;
126     }
127
128     @Override
129     public String toString() {
130         return code + ": " + name;
131     }
132 }