]> git.basschouten.com Git - openhab-addons.git/blob
a97b9aebb39418e9984e01ec5d02e908ab0c8f23
[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.tapocontrol.internal.constants;
14
15 import static org.openhab.binding.tapocontrol.internal.constants.TapoBindingSettings.BINDING_ID;
16
17 import java.util.Collections;
18 import java.util.Set;
19 import java.util.stream.Collectors;
20 import java.util.stream.Stream;
21
22 import org.eclipse.jdt.annotation.NonNullByDefault;
23 import org.openhab.core.thing.ThingTypeUID;
24
25 /**
26  * The {@link TapoBindingSettings} class defines common constants, which are
27  * used across the whole binding.
28  *
29  * @author Christian Wild - Initial contribution
30  ***/
31 @NonNullByDefault
32 public class TapoThingConstants {
33     public static final String DEVICE_VENDOR = "Tapo";
34
35     /*** LIST OF SUPPORTED DEVICE NAMES ***/
36     public static final String DEVICE_BRIDGE = "bridge";
37     public static final String DEVICE_P100 = "P100";
38     public static final String DEVICE_P105 = "P105";
39     public static final String DEVICE_P110 = "P110";
40     public static final String DEVICE_P115 = "P115";
41     public static final String DEVICE_P300 = "P300";
42     public static final String DEVICE_L510 = "L510";
43     public static final String DEVICE_L530 = "L530";
44     public static final String DEVICE_L610 = "L610";
45     public static final String DEVICE_L630 = "L630";
46     public static final String DEVICE_L900 = "L900";
47     public static final String DEVICE_L920 = "L920";
48     public static final String DEVICE_L930 = "L930";
49     public static final String DEVICE_UNIVERSAL = "Test_Device";
50
51     /*** LIST OF SUPPORTED DEVICE DESCRIPTIONS ***/
52     public static final String DEVICE_DESCRIPTION_BRIDGE = "TapoControl Cloud-Login";
53     public static final String DEVICE_DESCRIPTION_SMART_PLUG = "SmartPlug";
54     public static final String DEVICE_DESCRIPTION_POWER_STRIP = "PowerStrip";
55     public static final String DEVICE_DESCRIPTION_WHITE_BULB = "White-Light-Bulb";
56     public static final String DEVICE_DESCRIPTION_COLOR_BULB = "Color-Light-Bulb";
57     public static final String DEVICE_DESCRIPTION_LIGHTSTRIP = "LightStrip";
58
59     /*** LIST OF SUPPORTED THING UIDS ***/
60     public static final ThingTypeUID BRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_BRIDGE);
61     public static final ThingTypeUID P100_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P100);
62     public static final ThingTypeUID P105_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P105);
63     public static final ThingTypeUID P110_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P110);
64     public static final ThingTypeUID P115_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P115);
65     public static final ThingTypeUID P300_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P300);
66     public static final ThingTypeUID L510_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L510);
67     public static final ThingTypeUID L530_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L530);
68     public static final ThingTypeUID L610_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L610);
69     public static final ThingTypeUID L630_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L630);
70     public static final ThingTypeUID L900_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L900);
71     public static final ThingTypeUID L920_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L920);
72     public static final ThingTypeUID L930_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L930);
73     public static final ThingTypeUID UNIVERSAL_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_UNIVERSAL);
74
75     /*** SET OF SUPPORTED UIDS ***/
76     public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_UIDS = Set.of(BRIDGE_THING_TYPE);
77     public static final Set<ThingTypeUID> SUPPORTED_SMART_PLUG_UIDS = Set.of(P100_THING_TYPE, P105_THING_TYPE,
78             P110_THING_TYPE, P115_THING_TYPE, P300_THING_TYPE);
79     public static final Set<ThingTypeUID> SUPPORTED_WHITE_BULB_UIDS = Set.of(L510_THING_TYPE, L610_THING_TYPE);
80     public static final Set<ThingTypeUID> SUPPORTED_COLOR_BULB_UIDS = Set.of(L530_THING_TYPE, L630_THING_TYPE);
81     public static final Set<ThingTypeUID> SUPPORTED_LIGHT_STRIP_UIDS = Set.of(L900_THING_TYPE, L920_THING_TYPE,
82             L930_THING_TYPE);
83     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
84             .unmodifiableSet(Stream
85                     .of(SUPPORTED_BRIDGE_UIDS, SUPPORTED_SMART_PLUG_UIDS, SUPPORTED_WHITE_BULB_UIDS,
86                             SUPPORTED_COLOR_BULB_UIDS, SUPPORTED_LIGHT_STRIP_UIDS)
87                     .flatMap(Set::stream).collect(Collectors.toSet()));
88     /*** THINGS WITH ENERGY DATA ***/
89     public static final Set<ThingTypeUID> SUPPORTED_ENERGY_DATA_UIDS = Set.of(P110_THING_TYPE, P115_THING_TYPE);
90
91     /*** THINGS WITH CHILDS DATA ***/
92     public static final Set<ThingTypeUID> SUPPORTED_CHILDS_DATA_UIDS = Set.of(P300_THING_TYPE);
93
94     /*** THINGS WITH CHANNEL GROUPS ***/
95     public static final Set<ThingTypeUID> CHANNEL_GROUP_THING_SET = Collections
96             .unmodifiableSet(Stream
97                     .of(SUPPORTED_BRIDGE_UIDS, SUPPORTED_SMART_PLUG_UIDS, SUPPORTED_WHITE_BULB_UIDS,
98                             SUPPORTED_COLOR_BULB_UIDS, SUPPORTED_LIGHT_STRIP_UIDS)
99                     .flatMap(Set::stream).collect(Collectors.toSet()));
100
101     /*** DEVICE JSON STRINGS (CLOUD) ***/
102     public static final String CLOUD_JSON_KEY_ALIAS = "alias";
103     public static final String CLOUD_JSON_KEY_FW = "fwVer";
104     public static final String CLOUD_JSON_KEY_HW = "deviceHwVer";
105     public static final String CLOUD_JSON_KEY_ID = "deviceId";
106     public static final String CLOUD_JSON_KEY_MAC = "deviceMac";
107     public static final String CLOUD_JSON_KEY_MODEL = "deviceName"; // use name cause modell returns different values
108     public static final String CLOUD_JSON_KEY_NAME = "deviceName";
109     public static final String CLOUD_JSON_KEY_REGION = "deviceRegion";
110     public static final String CLOUD_JSON_KEY_SERVER_URL = "appServerUrl";
111     public static final String CLOUD_JSON_KEY_TYPE = "deviceType";
112
113     /*** DEVICE JSON STRINGS (DEVICE) ***/
114     public static final String JSON_KEY_BRIGHTNES = "brightness";
115     public static final String JSON_KEY_COLORTEMP = "color_temp";
116     public static final String JSON_KEY_FW = "fw_ver";
117     public static final String JSON_KEY_HUE = "hue";
118     public static final String JSON_KEY_HW_VER = "hw_ver";
119     public static final String JSON_KEY_ID = "device_id";
120     public static final String JSON_KEY_IP = "ip";
121     public static final String JSON_KEY_MAC = "mac";
122     public static final String JSON_KEY_MODEL = "model";
123     public static final String JSON_KEY_NICKNAME = "nickname";
124     public static final String JSON_KEY_ON = "device_on";
125     public static final String JSON_KEY_ONTIME = "on_time";
126     public static final String JSON_KEY_OVERHEAT = "overheated";
127     public static final String JSON_KEY_REGION = "region";
128     public static final String JSON_KEY_SATURATION = "saturation";
129     public static final String JSON_KEY_SIGNAL_LEVEL = "signal_level";
130     public static final String JSON_KEY_RSSI = "rssi";
131     public static final String JSON_KEY_TYPE = "type";
132     public static final String JSON_KEY_USAGE_7 = "time_usage_past7";
133     public static final String JSON_KEY_USAGE_30 = "time_usage_past30";
134     public static final String JSON_KEY_USAGE_TODAY = "time_usage_today";
135     public static final String DEVICE_REPRESENTATION_PROPERTY = "macAddress";
136     // lightning effects
137     public static final String JSON_KEY_LIGHTNING_EFFECT = "lighting_effect";
138     public static final String JSON_KEY_LIGHTNING_EFFECT_BRIGHNTESS = "brightness";
139     public static final String JSON_KEY_LIGHTNING_EFFECT_COLORTEMPRANGE = "color_temp_range";
140     public static final String JSON_KEY_LIGHTNING_EFFECT_CUSTOM = "custom";
141     public static final String JSON_KEY_LIGHTNING_EFFECT_DISPLAYCOLORS = "displayColors";
142     public static final String JSON_KEY_LIGHTNING_EFFECT_ENABLE = "enable";
143     public static final String JSON_KEY_LIGHTNING_EFFECT_ID = "id";
144     public static final String JSON_KEY_LIGHTNING_EFFECT_NAME = "name";
145     public static final String JSON_KEY_LIGHTNING_DYNAMIC_ENABLE = "dynamic_light_effect_enable";
146     public static final String JSON_KEY_LIGHTNING_DYNAMIC_ID = "dynamic_light_effect_id";
147     // energy monitoring
148     public static final String JSON_KEY_ENERGY_POWER = "current_power";
149     public static final String JSON_KEY_ENERGY_RUNTIME_TODAY = "today_runtime";
150     public static final String JSON_KEY_ENERGY_RUNTIME_MONTH = "month_runtime";
151     public static final String JSON_KEY_ENERGY_ENERGY_TODAY = "today_energy";
152     public static final String JSON_KEY_ENERGY_ENERGY_MONTH = "month_energy";
153     public static final String JSON_KEY_ENERGY_PAST24H = "past24h";
154     public static final String JSON_KEY_ENERGY_PAST7D = "past7d";
155     public static final String JSON_KEY_ENERGY_PAST30D = "past30d";
156     public static final String JSON_KEY_ENERGY_PAST1Y = "past1y";
157     // childs management
158     public static final String JSON_KEY_CHILD_START_INDEX = "start_index";
159
160     /*** DEVICE SETTINGS ***/
161     public static final Integer BULB_MIN_COLORTEMP = 2500;
162     public static final Integer BULB_MAX_COLORTEMP = 6500;
163
164     /*** CHANNEL LISTS ***/
165     // channel group actuator
166     public static final String CHANNEL_GROUP_ACTUATOR = "actuator";
167     public static final String CHANNEL_BRIGHTNESS = "brightness";
168     public static final String CHANNEL_COLOR = "color";
169     public static final String CHANNEL_COLOR_TEMP = "colorTemperature";
170     public static final String CHANNEL_OUTPUT = "output";
171     public static final String CHANNEL_SWITCH = "switch";
172     // channel group device
173     public static final String CHANNEL_GROUP_DEVICE = "device";
174     public static final String CHANNEL_ONTIME = "onTime";
175     public static final String CHANNEL_OVERHEAT = "overheated";
176     public static final String CHANNEL_WIFI_STRENGTH = "wifiSignal";
177     // channel group energy monitor
178     public static final String CHANNEL_GROUP_ENERGY = "energy";
179     public static final String CHANNEL_NRG_POWER = "actualPower";
180     public static final String CHANNEL_NRG_USAGE_TODAY = "todayEnergyUsage";
181     public static final String CHANNEL_NRG_RUNTIME_TODAY = "todayRuntime";
182     // channel group effect
183     public static final String CHANNEL_GROUP_EFFECTS = "effects";
184     public static final String CHANNEL_FX_BRIGHTNESS = "fxBrightness";
185     public static final String CHANNEL_FX_COLORS = "fxColors";
186     public static final String CHANNEL_FX_NAME = "fxName";
187
188     /*** LIST OF PROPERTY NAMES ***/
189     public static final String PROPERTY_FAMILY = "deviceFamily";
190     public static final String PROPERTY_LOCATION = "location";
191     public static final String PROPERTY_WIFI_LEVEL = "signal-strength";
192 }