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.tapocontrol.internal.constants;
15 import static org.openhab.binding.tapocontrol.internal.constants.TapoBindingSettings.BINDING_ID;
17 import java.util.Collections;
19 import java.util.stream.Collectors;
20 import java.util.stream.Stream;
22 import org.eclipse.jdt.annotation.NonNullByDefault;
23 import org.openhab.core.thing.ThingTypeUID;
26 * The {@link TapoBindingSettings} class defines common constants, which are
27 * used across the whole binding.
29 * @author Christian Wild - Initial contribution
32 public class TapoThingConstants {
33 public static final String DEVICE_VENDOR = "Tapo";
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";
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";
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);
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,
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);
91 /*** THINGS WITH CHILDS DATA ***/
92 public static final Set<ThingTypeUID> SUPPORTED_CHILDS_DATA_UIDS = Set.of(P300_THING_TYPE);
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()));
101 /*** DEVICE PROPERTY STRINGS (CLOUD) ***/
102 public static final String CLOUD_PROPERTY_ALIAS = "alias";
103 public static final String CLOUD_PROPERTY_FW = "fwVer";
104 public static final String CLOUD_PROPERTY_HW = "deviceHwVer";
105 public static final String CLOUD_PROPERTY_ID = "deviceId";
106 public static final String CLOUD_PROPERTY_MAC = "deviceMac";
107 public static final String CLOUD_PROPERTY_MODEL = "deviceName"; // use name cause modell returns different values
108 public static final String CLOUD_PROPERTY_NAME = "deviceName";
109 public static final String CLOUD_PROPERTY_REGION = "deviceRegion";
110 public static final String CLOUD_PROPERTY_SERVER_URL = "appServerUrl";
111 public static final String CLOUD_PROPERTY_TYPE = "deviceType";
113 /*** DEVICE PROPERTY STRINGS (DEVICE) ***/
114 public static final String DEVICE_PROPERTY_BRIGHTNES = "brightness";
115 public static final String DEVICE_PROPERTY_COLORTEMP = "color_temp";
116 public static final String DEVICE_PROPERTY_FW = "fw_ver";
117 public static final String DEVICE_PROPERTY_HUE = "hue";
118 public static final String DEVICE_PROPERTY_HW = "hw_ver";
119 public static final String DEVICE_PROPERTY_ID = "device_id";
120 public static final String DEVICE_PROPERTY_IP = "ip";
121 public static final String DEVICE_PROPERTY_MAC = "mac";
122 public static final String DEVICE_PROPERTY_MODEL = "model";
123 public static final String DEVICE_PROPERTY_NICKNAME = "nickname";
124 public static final String DEVICE_PROPERTY_ON = "device_on";
125 public static final String DEVICE_PROPERTY_ONTIME = "on_time";
126 public static final String DEVICE_PROPERTY_OVERHEAT = "overheated";
127 public static final String DEVICE_PROPERTY_REGION = "region";
128 public static final String DEVICE_PROPERTY_SATURATION = "saturation";
129 public static final String DEVICE_PROPERTY_SIGNAL = "signal_level";
130 public static final String DEVICE_PROPERTY_SIGNAL_RSSI = "rssi";
131 public static final String DEVICE_PROPERTY_TYPE = "type";
132 public static final String DEVICE_PROPERTY_USAGE_7 = "time_usage_past7";
133 public static final String DEVICE_PROPERTY_USAGE_30 = "time_usage_past30";
134 public static final String DEVICE_PROPERTY_USAGE_TODAY = "time_usage_today";
135 public static final String DEVICE_REPRESENTATION_PROPERTY = "macAddress";
137 public static final String DEVICE_PROPERTY_EFFECT = "lighting_effect";
138 public static final String PROPERTY_LIGHTNING_EFFECT_BRIGHNTESS = "brightness";
139 public static final String PROPERTY_LIGHTNING_EFFECT_COLORTEMPRANGE = "color_temp_range";
140 public static final String PROPERTY_LIGHTNING_EFFECT_CUSTOM = "custom";
141 public static final String PROPERTY_LIGHTNING_EFFECT_DISPLAYCOLORS = "displayColors";
142 public static final String PROPERTY_LIGHTNING_EFFECT_ENABLE = "enable";
143 public static final String PROPERTY_LIGHTNING_EFFECT_ID = "id";
144 public static final String PROPERTY_LIGHTNING_EFFECT_NAME = "name";
146 public static final String ENERGY_PROPERTY_POWER = "current_power";
147 public static final String ENERGY_PROPERTY_RUNTIME_TODAY = "today_runtime";
148 public static final String ENERGY_PROPERTY_RUNTIME_MONTH = "month_runtime";
149 public static final String ENERGY_PROPERTY_ENERGY_TODAY = "today_energy";
150 public static final String ENERGY_PROPERTY_ENERGY_MONTH = "month_energy";
151 public static final String ENERGY_PROPERTY_PAST24H = "past24h";
152 public static final String ENERGY_PROPERTY_PAST7D = "past7d";
153 public static final String ENERGY_PROPERTY_PAST30D = "past30d";
154 public static final String ENERGY_PROPERTY_PAST1Y = "past1y";
156 public static final String CHILD_PROPERTY_START_INDEX = "start_index";
158 /*** DEVICE SETTINGS ***/
159 public static final Integer BULB_MIN_COLORTEMP = 2500;
160 public static final Integer BULB_MAX_COLORTEMP = 6500;
162 /*** CHANNEL LISTS ***/
163 // channel group actuator
164 public static final String CHANNEL_GROUP_ACTUATOR = "actuator";
165 public static final String CHANNEL_BRIGHTNESS = "brightness";
166 public static final String CHANNEL_COLOR = "color";
167 public static final String CHANNEL_COLOR_TEMP = "colorTemperature";
168 public static final String CHANNEL_OUTPUT = "output";
169 public static final String CHANNEL_SWITCH = "switch";
170 // channel group device
171 public static final String CHANNEL_GROUP_DEVICE = "device";
172 public static final String CHANNEL_ONTIME = "onTime";
173 public static final String CHANNEL_OVERHEAT = "overheated";
174 public static final String CHANNEL_WIFI_STRENGTH = "wifiSignal";
175 // channel group energy monitor
176 public static final String CHANNEL_GROUP_ENERGY = "energy";
177 public static final String CHANNEL_NRG_POWER = "actualPower";
178 public static final String CHANNEL_NRG_USAGE_TODAY = "todayEnergyUsage";
179 public static final String CHANNEL_NRG_RUNTIME_TODAY = "todayRuntime";
180 // channel group effect
181 public static final String CHANNEL_GROUP_EFFECTS = "effect";
182 public static final String CHANNEL_FX_BRIGHTNESS = "brightness";
183 public static final String CHANNEL_FX_COLORS = "displayColors";
184 public static final String CHANNEL_FX_CUSTOM = "custom";
185 public static final String CHANNEL_FX_ENABLE = "enable";
186 public static final String CHANNEL_FX_NAME = "name";
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";