2 * Copyright (c) 2010-2023 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.daikin.internal.api.airbase;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.slf4j.Logger;
17 import org.slf4j.LoggerFactory;
20 * Container class for enums related to Daikin Airbase A/C systems
22 * @author Tim Waterhouse <tim@timwaterhouse.com> - Initial contribution
23 * @author Paul Smedley <paul@smedley.id.au> - Mods for Daikin Airbase Units
27 public class AirbaseEnums {
28 public enum AirbaseMode {
32 DRY(7, "Dehumidifier"),
35 private static final Logger LOGGER = LoggerFactory.getLogger(AirbaseMode.class);
36 private final int value;
37 private final String label;
39 AirbaseMode(int value, String label) {
44 public int getValue() {
48 public String getLabel() {
52 public static AirbaseMode fromValue(int value) {
53 for (AirbaseMode m : AirbaseMode.values()) {
54 if (m.getValue() == value) {
58 LOGGER.debug("Unexpected Mode value of \"{}\"", value);
63 public enum AirbaseFanSpeed {
64 // level,f_auto,f_airside
65 AUTO(0, false, false),
66 LEVEL_1(1, false, false),
67 LEVEL_2(2, false, false),
68 LEVEL_3(3, false, false),
69 LEVEL_4(4, false, false),
70 LEVEL_5(5, false, false),
71 AUTO_LEVEL_1(1, true, false),
72 AUTO_LEVEL_2(2, true, false),
73 AUTO_LEVEL_3(3, true, false),
74 AUTO_LEVEL_4(4, true, false),
75 AUTO_LEVEL_5(5, true, false),
76 AIRSIDE(1, false, true);
78 private static final Logger LOGGER = LoggerFactory.getLogger(AirbaseFanSpeed.class);
79 private final int level;
80 private final boolean auto;
81 private final boolean airside;
83 AirbaseFanSpeed(int level, boolean auto, boolean airside) {
86 this.airside = airside;
89 public int getLevel() {
93 public boolean getAuto() {
97 public boolean getAirside() {
101 public String getLabel() {
112 return label + "Level " + Integer.toString(level);
115 public static AirbaseFanSpeed fromValue(int rate, boolean auto, boolean airside) { // convert from f_rate,
121 return AirbaseFanSpeed.AUTO;
123 for (AirbaseFanSpeed m : AirbaseFanSpeed.values()) {
124 if (m.getLevel() == rate && m.getAuto() == auto && m.getAirside() == airside) {
128 LOGGER.debug("Unexpected FanSpeed value from rate={}, auto={}, airside={}", rate, auto ? 1 : 0,
134 public enum AirbaseFanMovement {
139 VERTICAL_AND_HORIZONTAL(3);
141 private static final Logger LOGGER = LoggerFactory.getLogger(AirbaseFanMovement.class);
142 private final int value;
144 AirbaseFanMovement(int value) {
148 public int getValue() {
152 public static AirbaseFanMovement fromValue(int value) {
153 for (AirbaseFanMovement m : AirbaseFanMovement.values()) {
154 if (m.getValue() == value) {
158 LOGGER.debug("Unexpected FanMovement value of \"{}\"", value);
163 public enum AirbaseFeature {
165 FILTER_SIGN("en_filter_sign"),
166 TEMP_SETTING("en_temp_setting"),
169 RTEMP_A("en_rtemp_a"),
173 AIRSIDE("en_airside"),
174 QUICK_TIMER("en_quick_timer"),
177 FRATE_AUTO("en_frate_auto");
179 private static final Logger LOGGER = LoggerFactory.getLogger(AirbaseFeature.class);
180 private final String value;
182 AirbaseFeature(String value) {
186 public String getValue() {