]> git.basschouten.com Git - openhab-addons.git/blob
0286783a64c849651506a7d9d169e5f7b5b56a1a
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 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 TapoThingConstants} class defines thing 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_H100 = "H100";
38     public static final String DEVICE_P100 = "P100";
39     public static final String DEVICE_P105 = "P105";
40     public static final String DEVICE_P110 = "P110";
41     public static final String DEVICE_P115 = "P115";
42     public static final String DEVICE_P300 = "P300";
43     public static final String DEVICE_L510 = "L510";
44     public static final String DEVICE_L530 = "L530";
45     public static final String DEVICE_L610 = "L610";
46     public static final String DEVICE_L630 = "L630";
47     public static final String DEVICE_L900 = "L900";
48     public static final String DEVICE_L920 = "L920";
49     public static final String DEVICE_L930 = "L930";
50     public static final String DEVICE_T110 = "T110";
51     public static final String DEVICE_T310 = "T310";
52     public static final String DEVICE_T315 = "T315";
53     public static final String DEVICE_UNIVERSAL = "Test_Device";
54
55     /*** LIST OF SUPPORTED DEVICE DESCRIPTIONS ***/
56     public static final String DEVICE_DESCRIPTION_BRIDGE = "TapoControl Cloud-Login";
57     public static final String DEVICE_DESCRIPTION_HUB = "SmartHub";
58     public static final String DEVICE_DESCRIPTION_SOCKET = "SmartPlug";
59     public static final String DEVICE_DESCRIPTION_SOCKET_STRIP = "PowerStrip";
60     public static final String DEVICE_DESCRIPTION_WHITE_BULB = "White-Light-Bulb";
61     public static final String DEVICE_DESCRIPTION_COLOR_BULB = "Color-Light-Bulb";
62     public static final String DEVICE_DESCRIPTION_LIGHTSTRIP = "LightStrip";
63     public static final String DEVICE_DESCRIPTION_SMART_CONTACT = "Smart-Contact-Sensor";
64     public static final String DEVICE_DESCRIPTION_MOTION_SENSOR = "Motion-Sensor";
65     public static final String DEVICE_DESCRIPTION_TEMP_SENSOR = "Temperature-Sensor";
66
67     /*** LIST OF SUPPORTED THING UIDS ***/
68     public static final ThingTypeUID BRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_BRIDGE);
69     public static final ThingTypeUID H100_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_H100);
70     public static final ThingTypeUID P100_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P100);
71     public static final ThingTypeUID P105_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P105);
72     public static final ThingTypeUID P110_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P110);
73     public static final ThingTypeUID P115_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P115);
74     public static final ThingTypeUID P300_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_P300);
75     public static final ThingTypeUID L510_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L510);
76     public static final ThingTypeUID L530_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L530);
77     public static final ThingTypeUID L610_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L610);
78     public static final ThingTypeUID L630_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L630);
79     public static final ThingTypeUID L900_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L900);
80     public static final ThingTypeUID L920_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L920);
81     public static final ThingTypeUID L930_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_L930);
82     public static final ThingTypeUID UNIVERSAL_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_UNIVERSAL);
83
84     /*** LIST OF SUPPORTED HUB CHILD THING UIDS ***/
85     public static final ThingTypeUID T110_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_T110);
86     public static final ThingTypeUID T310_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_T310);
87     public static final ThingTypeUID T315_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_T315);
88
89     /*** SET OF SUPPORTED UIDS ***/
90     public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_UIDS = Set.of(BRIDGE_THING_TYPE);
91     public static final Set<ThingTypeUID> SUPPORTED_HUB_UIDS = Set.of(H100_THING_TYPE);
92     public static final Set<ThingTypeUID> SUPPORTED_SOCKET_UIDS = Set.of(P100_THING_TYPE, P105_THING_TYPE,
93             P110_THING_TYPE, P115_THING_TYPE);
94     public static final Set<ThingTypeUID> SUPPORTED_SOCKET_STRIP_UIDS = Set.of(P300_THING_TYPE);
95     public static final Set<ThingTypeUID> SUPPORTED_WHITE_BULB_UIDS = Set.of(L510_THING_TYPE, L610_THING_TYPE);
96     public static final Set<ThingTypeUID> SUPPORTED_COLOR_BULB_UIDS = Set.of(L530_THING_TYPE, L630_THING_TYPE);
97     public static final Set<ThingTypeUID> SUPPORTED_LIGHT_STRIP_UIDS = Set.of(L900_THING_TYPE, L920_THING_TYPE,
98             L930_THING_TYPE);
99     public static final Set<ThingTypeUID> SUPPORTED_HUB_CHILD_TYPES_UIDS = Set.of(T110_THING_TYPE, T310_THING_TYPE,
100             T315_THING_TYPE);
101     public static final Set<ThingTypeUID> SUPPORTED_SMART_CONTACTS = Set.of(T110_THING_TYPE);
102     public static final Set<ThingTypeUID> SUPPORTED_MOTION_SENSORS = Set.of();
103     public static final Set<ThingTypeUID> SUPPORTED_WHEATHER_SENSORS = Set.of(T310_THING_TYPE, T315_THING_TYPE);
104
105     /*** SET OF ALL SUPPORTED THINGS ***/
106     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(Stream
107             .of(SUPPORTED_BRIDGE_UIDS, SUPPORTED_HUB_UIDS, SUPPORTED_SOCKET_UIDS, SUPPORTED_SOCKET_STRIP_UIDS,
108                     SUPPORTED_WHITE_BULB_UIDS, SUPPORTED_COLOR_BULB_UIDS, SUPPORTED_LIGHT_STRIP_UIDS,
109                     SUPPORTED_SMART_CONTACTS, SUPPORTED_MOTION_SENSORS, SUPPORTED_WHEATHER_SENSORS)
110             .flatMap(Set::stream).collect(Collectors.toSet()));
111
112     /*** THINGS WITH ENERGY DATA ***/
113     public static final Set<ThingTypeUID> SUPPORTED_ENERGY_DATA_UIDS = Set.of(P110_THING_TYPE, P115_THING_TYPE);
114
115     /*** THINGS WITH CHANNEL GROUPS ***/
116     public static final Set<ThingTypeUID> CHANNEL_GROUP_THING_SET = Collections.unmodifiableSet(Stream
117             .of(SUPPORTED_BRIDGE_UIDS, SUPPORTED_HUB_UIDS, SUPPORTED_SOCKET_UIDS, SUPPORTED_SOCKET_STRIP_UIDS,
118                     SUPPORTED_WHITE_BULB_UIDS, SUPPORTED_COLOR_BULB_UIDS, SUPPORTED_LIGHT_STRIP_UIDS,
119                     SUPPORTED_SMART_CONTACTS, SUPPORTED_MOTION_SENSORS, SUPPORTED_WHEATHER_SENSORS)
120             .flatMap(Set::stream).collect(Collectors.toSet()));
121
122     public static final String CHILD_REPRESENTATION_PROPERTY = "serialNumber";
123
124     /*** DEVICE SETTINGS ***/
125     public static final Integer BULB_MIN_COLORTEMP = 2500;
126     public static final Integer BULB_MAX_COLORTEMP = 6500;
127
128     /*** CHANNEL LISTS ***/
129     // channel group actuator
130     public static final String CHANNEL_GROUP_ACTUATOR = "actuator";
131     public static final String CHANNEL_BRIGHTNESS = "brightness";
132     public static final String CHANNEL_COLOR = "color";
133     public static final String CHANNEL_COLOR_TEMP = "colorTemperature";
134     public static final String CHANNEL_MODE = "mode";
135     public static final String CHANNEL_OUTPUT = "output";
136     public static final String CHANNEL_SWITCH = "switch";
137     // channel group device
138     public static final String CHANNEL_GROUP_DEVICE = "device";
139     public static final String CHANNEL_BATTERY_LOW = "batteryLow";
140     public static final String CHANNEL_ONTIME = "onTime";
141     public static final String CHANNEL_OVERHEAT = "overheated";
142     public static final String CHANNEL_SIGNAL_STRENGTH = "signalStrength";
143     public static final String CHANNEL_WIFI_STRENGTH = "wifiSignal";
144     // channel group alarm
145     public static final String CHANNEL_GROUP_ALARM = "alarm";
146     public static final String CHANNEL_ALARM_ACTIVE = "alarmActive";
147     public static final String CHANNEL_ALARM_SOURCE = "alarmSource";
148     // channel group sensor
149     public static final String CHANNEL_GROUP_SENSOR = "sensor";
150     public static final String CHANNEL_IS_OPEN = "isOpen";
151     public static final String CHANNEL_TEMPERATURE = "currentTemp";
152     public static final String CHANNEL_HUMIDITY = "currentHumidity";
153     // channel group energy monitor
154     public static final String CHANNEL_GROUP_ENERGY = "energy";
155     public static final String CHANNEL_NRG_POWER = "actualPower";
156     public static final String CHANNEL_NRG_USAGE_TODAY = "todayEnergyUsage";
157     public static final String CHANNEL_NRG_RUNTIME_TODAY = "todayRuntime";
158     public static final String CHANNEL_NRG_USAGE_MONTH = "monthEnergyUsage";
159     public static final String CHANNEL_NRG_RUNTIME_MONTH = "monthRuntime";
160     // channel group effect
161     public static final String CHANNEL_GROUP_EFFECTS = "effects";
162     public static final String CHANNEL_FX_BRIGHTNESS = "fxBrightness";
163     public static final String CHANNEL_FX_COLORS = "fxColors";
164     public static final String CHANNEL_FX_NAME = "fxName";
165
166     /*** LIST OF PROPERTY NAMES ***/
167     public static final String PROPERTY_FAMILY = "deviceFamily";
168     public static final String PROPERTY_LOCATION = "location";
169     public static final String PROPERTY_WIFI_LEVEL = "signal-strength";
170
171     /*** EVENT LISTS ***/
172     // hub child events
173     public static final String EVENT_BATTERY_LOW = "batteryIsLow";
174     public static final String EVENT_CONTACT_OPENED = "contactOpened";
175     public static final String EVENT_CONTACT_CLOSED = "contactClosed";
176     public static final String EVENT_STATE_BATTERY_LOW = "batteryLow";
177     public static final String EVENT_STATE_OPENED = "open";
178     public static final String EVENT_STATE_CLOSED = "closed";
179 }