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.vesync.internal;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.core.thing.ThingTypeUID;
18 import com.google.gson.FieldNamingPolicy;
19 import com.google.gson.Gson;
20 import com.google.gson.GsonBuilder;
23 * The {@link VeSyncConstants} class defines common constants, which are
24 * used across the whole binding.
26 * @author David Goodyear - Initial contribution
29 public class VeSyncConstants {
31 public static final Gson GSON = new GsonBuilder()
32 .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).setPrettyPrinting()
33 .disableHtmlEscaping().serializeNulls().create();
35 private static final String BINDING_ID = "vesync";
37 public static final long DEFAULT_REFRESH_INTERVAL_DISCOVERED_DEVICES = 3600;
38 public static final long DEFAULT_POLL_INTERVAL_AIR_FILTERS_DEVICES = 10;
40 // List of all Thing Type UIDs
41 public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
42 public static final ThingTypeUID THING_TYPE_AIR_PURIFIER = new ThingTypeUID(BINDING_ID, "airPurifier");
43 public static final ThingTypeUID THING_TYPE_AIR_HUMIDIFIER = new ThingTypeUID(BINDING_ID, "airHumidifier");
45 // Thing configuration properties
46 public static final String DEVICE_MAC_ID = "macAddress";
48 public static final String EMPTY_STRING = "";
50 // Base Device Channel Names
51 public static final String DEVICE_CHANNEL_ENABLED = "enabled";
52 public static final String DEVICE_CHANNEL_DISPLAY_ENABLED = "display";
53 public static final String DEVICE_CHANNEL_CHILD_LOCK_ENABLED = "childLock";
54 public static final String DEVICE_CHANNEL_AIR_FILTER_LIFE_PERCENTAGE_REMAINING = "filterLifePercentage";
55 public static final String DEVICE_CHANNEL_FAN_MODE_ENABLED = "fanMode";
56 public static final String DEVICE_CHANNEL_FAN_SPEED_ENABLED = "manualFanSpeed";
57 public static final String DEVICE_CHANNEL_ERROR_CODE = "errorCode";
58 public static final String DEVICE_CHANNEL_AIRQUALITY_BASIC = "airQuality";
59 public static final String DEVICE_CHANNEL_AIRQUALITY_PM25 = "airQualityPM25";
61 public static final String DEVICE_CHANNEL_AF_CONFIG_DISPLAY_FOREVER = "configDisplayForever";
62 public static final String DEVICE_CHANNEL_AF_CONFIG_AUTO_MODE_PREF = "configAutoMode";
64 public static final String DEVICE_CHANNEL_AF_AUTO_OFF_CALC_TIME = "timerExpiry";
65 public static final String DEVICE_CHANNEL_AF_CONFIG_AUTO_ROOM_SIZE = "configAutoRoomSize";
66 public static final String DEVICE_CHANNEL_AF_SCHEDULES_COUNT = "schedulesCount";
67 public static final String DEVICE_CHANNEL_AF_NIGHT_LIGHT = "nightLightMode";
69 // Humidity related channels
70 public static final String DEVICE_CHANNEL_WATER_LACKS = "waterLacking";
71 public static final String DEVICE_CHANNEL_HUMIDITY_HIGH = "humidityHigh";
72 public static final String DEVICE_CHANNEL_WATER_TANK_LIFTED = "waterTankLifted";
73 public static final String DEVICE_CHANNEL_STOP_AT_TARGET = "stopAtHumiditySetpoint";
74 public static final String DEVICE_CHANNEL_HUMIDITY = "humidity";
75 public static final String DEVICE_CHANNEL_MIST_LEVEL = "mistLevel";
76 public static final String DEVICE_CHANNEL_HUMIDIFIER_MODE = "humidifierMode";
77 public static final String DEVICE_CHANNEL_WARM_ENABLED = "warmEnabled";
78 public static final String DEVICE_CHANNEL_WARM_LEVEL = "warmLevel";
80 public static final String DEVICE_CHANNEL_CONFIG_TARGET_HUMIDITY = "humiditySetpoint";
82 // Property name constants
83 public static final String DEVICE_PROP_DEVICE_NAME = "Device Name";
84 public static final String DEVICE_PROP_DEVICE_TYPE = "Device Type";
85 public static final String DEVICE_PROP_DEVICE_MAC_ID = "MAC Id";
86 public static final String DEVICE_PROP_DEVICE_FAMILY = "Device Family";
87 public static final String DEVICE_PROP_DEVICE_UUID = "UUID";
89 // Property name for config constants
90 public static final String DEVICE_PROP_CONFIG_DEVICE_NAME = "deviceName";
91 public static final String DEVICE_PROP_CONFIG_DEVICE_MAC = "macId";
93 // Bridge name constants
94 public static final String DEVICE_PROP_BRIDGE_REG_TS = "Registration Time";
95 public static final String DEVICE_PROP_BRIDGE_COUNTRY_CODE = "Country Code";
96 public static final String DEVICE_PROP_BRIDGE_ACCEPT_LANG = "Accept Language";