]> git.basschouten.com Git - openhab-addons.git/blob
45b566409751c6021d0d0444867e16511460f1e8
[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.tradfri.internal;
14
15 import java.util.Collections;
16 import java.util.Set;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
19
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.core.thing.ThingTypeUID;
22
23 /**
24  * The {@link TradfriBindingConstants} class defines common constants, which are
25  * used across the whole binding.
26  *
27  * @author Kai Kreuzer - Initial contribution
28  * @author Christoph Weitkamp - Added support for remote controller and motion sensor devices (read-only battery level)
29  * @author Manuel Raffel - Added support for blinds
30  */
31 @NonNullByDefault
32 public class TradfriBindingConstants {
33
34     private static final String BINDING_ID = "tradfri";
35
36     // List of all Thing Type UIDs
37     public static final ThingTypeUID GATEWAY_TYPE_UID = new ThingTypeUID(BINDING_ID, "gateway");
38
39     public static final ThingTypeUID THING_TYPE_ONOFF_PLUG = new ThingTypeUID(BINDING_ID, "0010");
40     public static final ThingTypeUID THING_TYPE_DIMMABLE_LIGHT = new ThingTypeUID(BINDING_ID, "0100");
41     public static final ThingTypeUID THING_TYPE_COLOR_TEMP_LIGHT = new ThingTypeUID(BINDING_ID, "0220");
42     public static final ThingTypeUID THING_TYPE_COLOR_LIGHT = new ThingTypeUID(BINDING_ID, "0210");
43     public static final ThingTypeUID THING_TYPE_DIMMER = new ThingTypeUID(BINDING_ID, "0820");
44     public static final ThingTypeUID THING_TYPE_REMOTE_CONTROL = new ThingTypeUID(BINDING_ID, "0830");
45     public static final ThingTypeUID THING_TYPE_MOTION_SENSOR = new ThingTypeUID(BINDING_ID, "0107");
46     public static final ThingTypeUID THING_TYPE_BLINDS = new ThingTypeUID(BINDING_ID, "0202");
47     public static final ThingTypeUID THING_TYPE_OPEN_CLOSE_REMOTE_CONTROL = new ThingTypeUID(BINDING_ID, "0203");
48
49     public static final Set<ThingTypeUID> SUPPORTED_LIGHT_TYPES_UIDS = Collections
50             .unmodifiableSet(Stream.of(THING_TYPE_DIMMABLE_LIGHT, THING_TYPE_COLOR_TEMP_LIGHT, THING_TYPE_COLOR_LIGHT)
51                     .collect(Collectors.toSet()));
52
53     public static final Set<ThingTypeUID> SUPPORTED_PLUG_TYPES_UIDS = Collections.singleton(THING_TYPE_ONOFF_PLUG);
54
55     public static final Set<ThingTypeUID> SUPPORTED_BLINDS_TYPES_UIDS = Collections.singleton(THING_TYPE_BLINDS);
56
57     // List of all Gateway Configuration Properties
58     public static final String GATEWAY_CONFIG_HOST = "host";
59     public static final String GATEWAY_CONFIG_PORT = "port";
60     public static final String GATEWAY_CONFIG_CODE = "code";
61     public static final String GATEWAY_CONFIG_IDENTITY = "identity";
62     public static final String GATEWAY_CONFIG_PRE_SHARED_KEY = "preSharedKey";
63
64     // Not yet used - included for future support
65     public static final Set<ThingTypeUID> SUPPORTED_CONTROLLER_TYPES_UIDS = Collections
66             .unmodifiableSet(Stream.of(THING_TYPE_DIMMER, THING_TYPE_REMOTE_CONTROL,
67                     THING_TYPE_OPEN_CLOSE_REMOTE_CONTROL, THING_TYPE_MOTION_SENSOR).collect(Collectors.toSet()));
68
69     public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_TYPES_UIDS = Collections.singleton(GATEWAY_TYPE_UID);
70
71     public static final Set<ThingTypeUID> SUPPORTED_DEVICE_TYPES_UIDS = Collections.unmodifiableSet(Stream
72             .of(SUPPORTED_LIGHT_TYPES_UIDS.stream(), SUPPORTED_CONTROLLER_TYPES_UIDS.stream(),
73                     SUPPORTED_PLUG_TYPES_UIDS.stream(), SUPPORTED_BLINDS_TYPES_UIDS.stream())
74             .reduce(Stream::concat).orElseGet(Stream::empty).collect(Collectors.toSet()));
75
76     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
77             .unmodifiableSet(Stream.concat(SUPPORTED_BRIDGE_TYPES_UIDS.stream(), SUPPORTED_DEVICE_TYPES_UIDS.stream())
78                     .collect(Collectors.toSet()));
79
80     // List of all Channel IDs
81     public static final String CHANNEL_POWER = "power";
82     public static final String CHANNEL_BRIGHTNESS = "brightness";
83     public static final String CHANNEL_COLOR_TEMPERATURE = "color_temperature";
84     public static final String CHANNEL_COLOR = "color";
85     public static final String CHANNEL_POSITION = "position";
86     public static final String CHANNEL_BATTERY_LEVEL = "battery_level";
87     public static final String CHANNEL_BATTERY_LOW = "battery_low";
88
89     // IPSO Objects
90     public static final String DEVICES = "15001";
91     public static final String AUTH_PATH = "9063";
92     public static final String BLINDS = "15015";
93     public static final String CLIENT_IDENTITY_PROPOSED = "9090";
94     public static final String COLOR = "5706";
95     public static final String COLOR_X = "5709";
96     public static final String COLOR_Y = "5710";
97     public static final String COMMISSIONING_MODE = "9061";
98     public static final String CREATED_AT = "9002";
99     public static final String CUM_ACTIVE_POWER = "5805";
100     public static final String CURRENT_TIMESTAMP = "9059";
101     public static final int DEFAULT_DIMMER_TRANSITION_TIME = 5;
102     public static final String DEVICE = "3";
103     public static final String DIMMER = "5851";
104     public static final int DIMMER_MAX = 254;
105     public static final int DIMMER_MIN = 0;
106     public static final String END_ACTION = "9043";
107     public static final String END_TIME_HR = "9048";
108     public static final String END_TIME_MN = "9049";
109     public static final String ERROR_TAG = "errorcode";
110     public static final String FORCE_CHECK_OTA_UPDATE = "9032";
111     public static final String GATEWAY = "15011";
112     public static final String GATEWAY_DETAILS = "15012";
113     public static final String GATEWAY_NAME = "9035";
114     public static final int GATEWAY_REBOOT_NOTIFICATION = 1003;
115     public static final String GATEWAY_REBOOT_NOTIFICATION_TYPE = "9052";
116     public static final String GATEWAY_TIME_SOURCE = "9071";
117     public static final String GATEWAY_UPDATE_DETAILS_URL = "9056";
118     public static final String GATEWAY_UPDATE_PROGRESS = "9055";
119     public static final String GROUPS = "15004";
120     public static final String GROUP_ID = "9038";
121     public static final String GROUP_LINK_ARRAY = "9995";
122     public static final String GROUP_SETTINGS = "9045";
123     public static final String HS_ACCESSORY_LINK = "9018";
124     public static final String HS_LINK = "15002";
125     public static final String IKEA_MOODS = "9068";
126     public static final String INSTANCE_ID = "9003";
127     public static final String LAST_SEEN = "9020";
128     public static final String LIGHT = "3311";
129     public static final int LIGHTS_OFF_SMART_TASK = 2;
130     public static final String LIGHT_SETTING = "15013";
131     public static final int LOSS_OF_INTERNET_CONNECTIVITY = 5001;
132     public static final String MASTER_TOKEN_TAG = "9036";
133     public static final String MAX_MSR_VALUE = "5602";
134     public static final String MAX_RNG_VALUE = "5604";
135     public static final String MIN_MSR_VALUE = "5601";
136     public static final String MIN_RNG_VALUE = "5603";
137     public static final String NAME = "9001";
138     public static final int NEW_FIRMWARE_AVAILABLE = 1001;
139     public static final String NEW_PSK_BY_GW = "9091";
140     public static final String NOTIFICATION_EVENT = "9015";
141     public static final String NOTIFICATION_NVPAIR = "9017";
142     public static final String NOTIFICATION_STATE = "9014";
143     public static final int NOT_AT_HOME_SMART_TASK = 1;
144     public static final String NTP_SERVER = "9023";
145     public static final String ONOFF = "5850";
146     public static final String ON_TIME = "5852";
147     public static final String OPEN = "1";
148     public static final int OPTION_APP_TOKEN = 2051;
149     public static final int OTA_CRITICAL = 1;
150     public static final int OTA_FORCED = 5;
151     public static final int OTA_NORMAL = 0;
152     public static final int OTA_REQUIRED = 2;
153     public static final String OTA_TYPE = "9066";
154     public static final String OTA_UPDATE = "9037";
155     public static final String OTA_UPDATE_STATE = "9054";
156     public static final String PLUG = "3312";
157     public static final String POWER_FACTOR = "5820";
158     public static final String POSITION = "5536";
159     public static final String REACHABILITY_STATE = "9019";
160     public static final String REBOOT = "9030";
161     public static final String REPEAT_DAYS = "9041";
162     public static final String REPEATER = "15014";
163     public static final String RESET = "9031";
164     public static final String RESET_MIN_MAX_MSR = "5605";
165     public static final String SCENE = "15005";
166     public static final String SCENE_ACTIVATE_FLAG = "9058";
167     public static final String SCENE_ID = "9039";
168     public static final String SCENE_INDEX = "9057";
169     public static final String SCENE_LINK = "9009";
170     public static final String SENSOR = "3300";
171     public static final String SENSOR_TYPE = "5751";
172     public static final String SENSOR_VALUE = "5700";
173     public static final String SESSION_ID = "9033";
174     public static final String SESSION_LENGTH = "9064";
175     public static final String SHORTCUT_ICON_REFERENCE_TYPE = "9051";
176     public static final String SMART_TASK_ACTION = "9050";
177     public static final String SMART_TASK_TEMPLATE = "9016";
178     public static final int SMART_TASK_TRIGGERED_EVENT = 1002;
179     public static final String SMART_TASK_TYPE = "9040";
180     public static final String START_ACTION = "9042";
181     public static final String START_TIME_HR = "9046";
182     public static final String START_TIME_MN = "9047";
183     public static final String STOP_TRIGGER = "5523";
184     public static final String SWITCH = "15009";
185     public static final String TIME_ARRAY = "9994";
186     public static final String TIME_REMAINING_IN_SECONDS = "9024";
187     public static final String TRANSITION_TIME = "5712";
188     public static final String TRIGGER_TIME_INTERVAL = "9044";
189     public static final String TYPE = "5750";
190     public static final String UNIT = "5701";
191     public static final String UPDATE_ACCEPTED_TIMESTAMP = "9069";
192     public static final String UPDATE_FIRMWARE = "9034";
193     public static final String USE_CURRENT_LIGHT_SETTINGS = "9070";
194     public static final String VERSION = "9029";
195     public static final int WAKE_UP_SMART_TASK = 3;
196
197     public static final String TYPE_SWITCH = "0";
198     public static final String TYPE_REMOTE = "1";
199     public static final String TYPE_LIGHT = "2";
200     public static final String TYPE_PLUG = "3";
201     public static final String TYPE_SENSOR = "4";
202     public static final String TYPE_REPEATER = "6";
203     public static final String TYPE_BLINDS = "7";
204     public static final String DEVICE_VENDOR = "0";
205     public static final String DEVICE_MODEL = "1";
206     public static final String DEVICE_FIRMWARE = "3";
207     public static final String DEVICE_BATTERY_LEVEL = "9";
208 }