]> git.basschouten.com Git - openhab-addons.git/blob
b5c7a7238e291c8144c69bc679beb1e304947088
[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.shelly.internal;
14
15 import static org.openhab.binding.shelly.internal.discovery.ShellyThingCreator.*;
16
17 import java.util.Set;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.openhab.core.thing.ThingTypeUID;
21
22 /**
23  * The {@link ShellyBindingConstants} class defines common constants, which are
24  * used across the whole binding.
25  *
26  * @author Markus Michels - Initial contribution
27  */
28 @NonNullByDefault
29 public class ShellyBindingConstants {
30
31     public static final String VENDOR = "Shelly";
32     public static final String BINDING_ID = "shelly";
33     public static final String SYSTEM_ID = "system";
34
35     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_SHELLY1, //
36             THING_TYPE_SHELLY1L, //
37             THING_TYPE_SHELLY1PM, //
38             THING_TYPE_SHELLYEM, //
39             THING_TYPE_SHELLY3EM, //
40             THING_TYPE_SHELLY2_RELAY, //
41             THING_TYPE_SHELLY2_ROLLER, //
42             THING_TYPE_SHELLY25_RELAY, //
43             THING_TYPE_SHELLY25_ROLLER, //
44             THING_TYPE_SHELLY4PRO, //
45             THING_TYPE_SHELLYPLUG, //
46             THING_TYPE_SHELLYPLUGS, //
47             THING_TYPE_SHELLYPLUGU1, //
48             THING_TYPE_SHELLYUNI, //
49             THING_TYPE_SHELLYDIMMER, //
50             THING_TYPE_SHELLYDIMMER2, //
51             THING_TYPE_SHELLYIX3, //
52             THING_TYPE_SHELLYBULB, //
53             THING_TYPE_SHELLYDUO, //
54             THING_TYPE_SHELLYVINTAGE, //
55             THING_TYPE_SHELLYDUORGBW, //
56             THING_TYPE_SHELLYRGBW2_COLOR, //
57             THING_TYPE_SHELLYRGBW2_WHITE, //
58             THING_TYPE_SHELLYHT, //
59             THING_TYPE_SHELLYTRV, //
60             THING_TYPE_SHELLYSENSE, //
61             THING_TYPE_SHELLYEYE, //
62             THING_TYPE_SHELLYSMOKE, //
63             THING_TYPE_SHELLYGAS, //
64             THING_TYPE_SHELLYFLOOD, //
65             THING_TYPE_SHELLYDOORWIN, //
66             THING_TYPE_SHELLYDOORWIN2, //
67             THING_TYPE_SHELLYBUTTON1, //
68             THING_TYPE_SHELLYBUTTON2, //
69             THING_TYPE_SHELLMOTION, //
70
71             // Shelly Plus
72             THING_TYPE_SHELLYPLUS1, //
73             THING_TYPE_SHELLYPLUS1PM, //
74             THING_TYPE_SHELLYPLUS2PM_RELAY, //
75             THING_TYPE_SHELLYPLUS2PM_ROLLER, //
76             THING_TYPE_SHELLYPLUSI4, //
77             THING_TYPE_SHELLYPLUSI4DC, //
78             THING_TYPE_SHELLYPLUSDIMMER10V, //
79             THING_TYPE_SHELLYPLUSHT, //
80             THING_TYPE_SHELLYPLUSHTG3, //
81             THING_TYPE_SHELLYPLUSSMOKE, //
82             THING_TYPE_SHELLYPLUSPLUGS, //
83             THING_TYPE_SHELLYPLUSPLUGUS, //
84             THING_TYPE_SHELLYPLUSDIMMERUS, //
85
86             // Shelly Wall Display
87             THING_TYPE_SHELLYPLUSWALLDISPLAY, //
88
89             // Shelly Plus Mini
90             THING_TYPE_SHELLY1MINI, //
91             THING_TYPE_SHELLYPMMINI, //
92             THING_TYPE_SHELLY1PMMINI, //
93
94             // Shelly Pro
95             THING_TYPE_SHELLYPRO1, //
96             THING_TYPE_SHELLYPRO1PM, //
97             THING_TYPE_SHELLYPRO2_RELAY, //
98             THING_TYPE_SHELLYPRO2PM_RELAY, //
99             THING_TYPE_SHELLYPRO2PM_ROLLER, //
100             THING_TYPE_SHELLYPRO3, //
101             THING_TYPE_SHELLYPRO3EM, //
102             THING_TYPE_SHELLYPROEM50, //
103             THING_TYPE_SHELLYPRO4PM, //
104
105             // Shelly BLU
106             THING_TYPE_SHELLYBLUBUTTON, //
107             THING_TYPE_SHELLYBLUDW, //
108             THING_TYPE_SHELLYBLUMOTION, //
109             THING_TYPE_SHELLYBLUHT, //
110             THING_TYPE_SHELLYBLUGW, //
111
112             THING_TYPE_SHELLYPROTECTED, //
113             THING_TYPE_SHELLYUNKNOWN);
114
115     // Thing Configuration Properties
116     public static final String CONFIG_DEVICEIP = "deviceIp";
117     public static final String CONFIG_DEVICEADDRESS = "deviceAddress";
118     public static final String CONFIG_HTTP_USERID = "userId";
119     public static final String CONFIG_HTTP_PASSWORD = "password";
120     public static final String CONFIG_UPDATE_INTERVAL = "updateInterval";
121
122     public static final String PROPERTY_SERVICE_NAME = "serviceName";
123     public static final String PROPERTY_DEV_NAME = "deviceName";
124     public static final String PROPERTY_DEV_TYPE = "deviceType";
125     public static final String PROPERTY_DEV_MODE = "deviceMode";
126     public static final String PROPERTY_DEV_GEN = "deviceGeneration";
127     public static final String PROPERTY_DEV_AUTH = "deviceAuth";
128     public static final String PROPERTY_GW_DEVICE = "gatewayDevice";
129     public static final String PROPERTY_HWREV = "deviceHwRev";
130     public static final String PROPERTY_HWBATCH = "deviceHwBatch";
131     public static final String PROPERTY_UPDATE_PERIOD = "devUpdatePeriod";
132     public static final String PROPERTY_NUM_RELAYS = "numberRelays";
133     public static final String PROPERTY_NUM_ROLLERS = "numberRollers";
134     public static final String PROPERTY_NUM_METER = "numberMeters";
135     public static final String PROPERTY_LAST_ACTIVE = "lastActive";
136     public static final String PROPERTY_WIFI_NETW = "wifiNetwork";
137     public static final String PROPERTY_UPDATE_STATUS = "updateStatus";
138     public static final String PROPERTY_UPDATE_AVAILABLE = "updateAvailable";
139     public static final String PROPERTY_UPDATE_CURR_VERS = "updateCurrentVersion";
140     public static final String PROPERTY_UPDATE_NEW_VERS = "updateNewVersion";
141     public static final String PROPERTY_COAP_DESCR = "coapDeviceDescr";
142     public static final String PROPERTY_COAP_VERSION = "coapVersion";
143     public static final String PROPERTY_COIOTAUTO = "coiotAutoEnable";
144
145     // Relay
146     public static final String CHANNEL_GROUP_RELAY_CONTROL = "relay";
147     public static final String CHANNEL_OUTPUT_NAME = "outputName";
148     public static final String CHANNEL_OUTPUT = "output";
149     public static final String CHANNEL_INPUT = "input";
150     public static final String CHANNEL_INPUT1 = "input1";
151     public static final String CHANNEL_INPUT2 = "input2";
152     public static final String CHANNEL_BRIGHTNESS = "brightness";
153
154     public static final String CHANNEL_TIMER_AUTOON = "autoOn";
155     public static final String CHANNEL_TIMER_AUTOOFF = "autoOff";
156     public static final String CHANNEL_TIMER_ACTIVE = "timerActive";
157
158     // Roller
159     public static final String CHANNEL_GROUP_ROL_CONTROL = "roller";
160     public static final String CHANNEL_ROL_CONTROL_CONTROL = "control";
161     public static final String CHANNEL_ROL_CONTROL_POS = "rollerpos";
162     public static final String CHANNEL_ROL_CONTROL_FAV = "rollerFav";
163     public static final String CHANNEL_ROL_CONTROL_TIMER = "timer";
164     public static final String CHANNEL_ROL_CONTROL_STATE = "state";
165     public static final String CHANNEL_ROL_CONTROL_STOPR = "stopReason";
166     public static final String CHANNEL_ROL_CONTROL_SAFETY = "safety";
167
168     // Dimmer
169     public static final String CHANNEL_GROUP_DIMMER_CONTROL = CHANNEL_GROUP_RELAY_CONTROL;
170
171     // Power meter
172     public static final String CHANNEL_GROUP_METER = "meter";
173     public static final String CHANNEL_METER_CURRENTWATTS = "currentWatts";
174     public static final String CHANNEL_METER_LASTMIN = "lastPower";
175     public static final String CHANNEL_METER_LASTMIN1 = CHANNEL_METER_LASTMIN + "1";
176     public static final String CHANNEL_METER_TOTALKWH = "totalKWH";
177     public static final String CHANNEL_EMETER_TOTALRET = "returnedKWH";
178     public static final String CHANNEL_EMETER_REACTWATTS = "reactiveWatts";
179     public static final String CHANNEL_EMETER_VOLTAGE = "voltage";
180     public static final String CHANNEL_EMETER_CURRENT = "current";
181     public static final String CHANNEL_EMETER_PFACTOR = "powerFactor";
182     public static final String CHANNEL_EMETER_RESETTOTAL = "resetTotals";
183     public static final String CHANNEL_GROUP_NMETER = "nmeter";
184     public static final String CHANNEL_NMETER_CURRENT = "ncurrent";
185     public static final String CHANNEL_NMETER_IXSUM = "ixsum";
186     public static final String CHANNEL_NMETER_MISMATCH = "nmismatch";
187     public static final String CHANNEL_NMETER_MTRESHHOLD = "nmTreshhold";
188
189     public static final String CHANNEL_GROUP_SENSOR = "sensors";
190     public static final String CHANNEL_SENSOR_TEMP = "temperature";
191     public static final String CHANNEL_SENSOR_HUM = "humidity";
192     public static final String CHANNEL_SENSOR_LUX = "lux";
193     public static final String CHANNEL_SENSOR_PPM = "ppm";
194     public static final String CHANNEL_SENSOR_VOLTAGE = "voltage";
195     public static final String CHANNEL_SENSOR_ILLUM = "illumination";
196     public static final String CHANNEL_SENSOR_VIBRATION = "vibration";
197     public static final String CHANNEL_SENSOR_TILT = "tilt";
198     public static final String CHANNEL_SENSOR_FLOOD = "flood";
199     public static final String CHANNEL_SENSOR_SMOKE = "smoke";
200     public static final String CHANNEL_SENSOR_MUTE = "mute";
201     public static final String CHANNEL_SENSOR_STATE = "state";
202     public static final String CHANNEL_SENSOR_VALVE = "valve";
203     public static final String CHANNEL_SENSOR_SSTATE = "status"; // Shelly Gas
204     public static final String CHANNEL_SENSOR_MOTION_ACT = "motionActive";
205     public static final String CHANNEL_SENSOR_MOTION = "motion";
206     public static final String CHANNEL_SENSOR_MOTION_TS = "motionTimestamp";
207     public static final String CHANNEL_SENSOR_SLEEPTIME = "sensorSleepTime";
208     public static final String CHANNEL_SENSOR_ALARM_STATE = "alarmState";
209     public static final String CHANNEL_SENSOR_ERROR = "lastError";
210
211     // TRV
212     public static final String CHANNEL_CONTROL_SETTEMP = "targetTemp";
213     public static final String CHANNEL_CONTROL_POSITION = "position";
214     public static final String CHANNEL_CONTROL_MODE = "mode";
215     public static final String CHANNEL_CONTROL_BCONTROL = "boost";
216     public static final String CHANNEL_CONTROL_BTIMER = "boostTimer";
217     public static final String CHANNEL_CONTROL_SCHEDULE = "schedule";
218     public static final String CHANNEL_CONTROL_PROFILE = "selectedProfile";
219
220     // External sensors for Shelly1/1PM
221     public static final String CHANNEL_ESENSOR_TEMP1 = CHANNEL_SENSOR_TEMP + "1";
222     public static final String CHANNEL_ESENSOR_TEMP2 = CHANNEL_SENSOR_TEMP + "2";
223     public static final String CHANNEL_ESENSOR_TEMP3 = CHANNEL_SENSOR_TEMP + "3";
224     public static final String CHANNEL_ESENSOR_TEMP4 = CHANNEL_SENSOR_TEMP + "4";
225     public static final String CHANNEL_ESENSOR_TEMP5 = CHANNEL_SENSOR_TEMP + "5";
226     public static final String CHANNEL_ESENSOR_HUMIDITY = CHANNEL_SENSOR_HUM;
227     public static final String CHANNEL_ESENSOR_VOLTAGE = CHANNEL_SENSOR_VOLTAGE;
228     public static final String CHANNEL_ESENSOR_DIGITALINPUT = "digitalInput";
229     public static final String CHANNEL_ESENSOR_ANALOGINPUT = "analogInput";
230     public static final String CHANNEL_ESENSOR_INPUT = "input";
231     public static final String CHANNEL_ESENSOR_INPUT1 = CHANNEL_ESENSOR_INPUT + "1";
232
233     public static final String CHANNEL_GROUP_CONTROL = "control";
234     public static final String CHANNEL_SENSE_KEY = "key";
235
236     public static final String CHANNEL_GROUP_BATTERY = "battery";
237     public static final String CHANNEL_SENSOR_BAT_LEVEL = "batteryLevel";
238     public static final String CHANNEL_SENSOR_BAT_LOW = "lowBattery";
239
240     public static final String CHANNEL_GROUP_LIGHT_CONTROL = "control";
241     public static final String CHANNEL_LIGHT_COLOR_MODE = "mode";
242     public static final String CHANNEL_LIGHT_POWER = "power";
243     public static final String CHANNEL_LIGHT_DEFSTATE = "defaultState";
244     public static final String CHANNEL_GROUP_LIGHT_CHANNEL = "channel";
245
246     // Bulb/RGBW2 in color mode
247     public static final String CHANNEL_GROUP_COLOR_CONTROL = "color";
248     public static final String CHANNEL_COLOR_PICKER = "hsb";
249     public static final String CHANNEL_COLOR_FULL = "full";
250     public static final String CHANNEL_COLOR_RED = "red";
251     public static final String CHANNEL_COLOR_GREEN = "green";
252     public static final String CHANNEL_COLOR_BLUE = "blue";
253     public static final String CHANNEL_COLOR_WHITE = "white";
254     public static final String CHANNEL_COLOR_GAIN = "gain";
255     public static final String CHANNEL_COLOR_EFFECT = "effect";
256
257     // Bulb/RGBW2/Dup in White Mode
258     public static final String CHANNEL_GROUP_WHITE_CONTROL = "white";
259     public static final String CHANNEL_COLOR_TEMP = "temperature";
260
261     // Device Status
262     public static final String CHANNEL_GROUP_DEV_STATUS = "device";
263     public static final String CHANNEL_DEVST_NAME = "deviceName";
264     public static final String CHANNEL_DEVST_GATEWAY = "gatewayDevice";
265     public static final String CHANNEL_DEVST_UPTIME = "uptime";
266     public static final String CHANNEL_DEVST_HEARTBEAT = "heartBeat";
267     public static final String CHANNEL_DEVST_RSSI = "wifiSignal";
268     public static final String CHANNEL_DEVST_ITEMP = "internalTemp";
269     public static final String CHANNEL_DEVST_WAKEUP = "wakeupReason";
270     public static final String CHANNEL_DEVST_ALARM = "alarm";
271     public static final String CHANNEL_DEVST_ACCUWATTS = "accumulatedWatts";
272     public static final String CHANNEL_DEVST_ACCUTOTAL = "accumulatedWTotal";
273     public static final String CHANNEL_DEVST_ACCURETURNED = "accumulatedReturned";
274     public static final String CHANNEL_DEVST_RESETTOTAL = CHANNEL_EMETER_RESETTOTAL;
275
276     public static final String CHANNEL_DEVST_CHARGER = "charger";
277     public static final String CHANNEL_DEVST_UPDATE = "updateAvailable";
278     public static final String CHANNEL_DEVST_SELFTTEST = "selfTest";
279     public static final String CHANNEL_DEVST_VOLTAGE = "supplyVoltage";
280     public static final String CHANNEL_DEVST_CALIBRATED = "calibrated";
281
282     public static final String CHANNEL_LED_STATUS_DISABLE = "statusLed";
283     public static final String CHANNEL_LED_POWER_DISABLE = "powerLed";
284     // Button/xi3
285     public static final String CHANNEL_GROUP_STATUS = "status";
286     public static final String CHANNEL_STATUS_EVENTTYPE = "lastEvent";
287     public static final String CHANNEL_STATUS_EVENTTYPE1 = CHANNEL_STATUS_EVENTTYPE + "1";
288     public static final String CHANNEL_STATUS_EVENTTYPE2 = CHANNEL_STATUS_EVENTTYPE + "2";
289     public static final String CHANNEL_STATUS_EVENTCOUNT = "eventCount";
290     public static final String CHANNEL_STATUS_EVENTCOUNT1 = CHANNEL_STATUS_EVENTCOUNT + "1";
291     public static final String CHANNEL_STATUS_EVENTCOUNT2 = CHANNEL_STATUS_EVENTCOUNT + "2";
292
293     // General
294     public static final String CHANNEL_LAST_UPDATE = "lastUpdate";
295     public static final String CHANNEL_EVENT_TRIGGER = "event";
296     public static final String CHANNEL_BUTTON_TRIGGER = "button";
297     public static final String CHANNEL_BUTTON_TRIGGER1 = CHANNEL_BUTTON_TRIGGER + "1";
298     public static final String CHANNEL_BUTTON_TRIGGER2 = CHANNEL_BUTTON_TRIGGER + "2";
299
300     public static final String SERVICE_TYPE = "_http._tcp.local.";
301     public static final String SHELLY_API_MIN_FWVERSION = "v1.8.2";
302     public static final String SHELLY_API_MIN_FWCOIOT = "v1.6";// v1.6.0+
303     public static final String SHELLY_API_FWCOIOT2 = "v1.8";// CoAP 2 with FW 1.8+
304     public static final String SHELLY_API_FW_110 = "v1.10"; // FW 1.10 or newer detected, activates some add feature
305     public static final String SHELLY2_API_MIN_FWVERSION = "v0.10.1"; // Gen 2 minimum FW
306
307     // Alarm types/messages
308     public static final String ALARM_TYPE_NONE = "NONE";
309     public static final String ALARM_TYPE_RESTARTED = "RESTARTED";
310     public static final String ALARM_TYPE_OVERTEMP = "OVERTEMP";
311     public static final String ALARM_TYPE_OVERPOWER = "OVERPOWER";
312     public static final String ALARM_TYPE_OVERLOAD = "OVERLOAD";
313     public static final String ALARM_TYPE_LOADERR = "LOAD_ERROR";
314     public static final String ALARM_TYPE_SENSOR_ERROR = "SENSOR_ERROR";
315     public static final String ALARM_TYPE_LOW_BATTERY = "LOW_BATTERY";
316     public static final String ALARM_TYPE_VALVE_ERROR = "VALVE_ERROR";
317     public static final String EVENT_TYPE_VIBRATION = "VIBRATION";
318
319     // Event types
320     public static final String EVENT_TYPE_RELAY = "relay";
321     public static final String EVENT_TYPE_ROLLER = "roller";
322     public static final String EVENT_TYPE_LIGHT = "light";
323     public static final String EVENT_TYPE_SENSORDATA = "report";
324
325     // URI for the EventServlet
326     public static final String SHELLY1_CALLBACK_URI = "/shelly/event";
327     public static final String SHELLY2_CALLBACK_URI = "/shelly/wsevent";
328
329     public static final int DIM_STEPSIZE = 5;
330
331     // Formatting: Number of scaling digits
332     public static final int DIGITS_NONE = 0;
333     public static final int DIGITS_WATT = 2;
334     public static final int DIGITS_KWH = 3;
335     public static final int DIGITS_VOLT = 1;
336     public static final int DIGITS_AMPERE = 3;
337     public static final int DIGITS_TEMP = 1;
338     public static final int DIGITS_LUX = 0;
339     public static final int DIGITS_PERCENT = 1;
340
341     public static final int SHELLY_API_TIMEOUT_MS = 10000;
342     public static final int UPDATE_STATUS_INTERVAL_SECONDS = 3; // check for updates every x sec
343     public static final int UPDATE_SKIP_COUNT = 20; // update every x triggers or when a key was pressed
344     public static final int UPDATE_MIN_DELAY = 15;// update every x triggers or when a key was pressed
345     public static final int UPDATE_SETTINGS_INTERVAL_SECONDS = 60; // check for updates every x sec
346     public static final int HEALTH_CHECK_INTERVAL_SEC = 300; // Health check interval, 5min
347     public static final int VIBRATION_FILTER_SEC = 5; // Absorb duplicate vibration events for xx sec
348
349     public static final String BUNDLE_RESOURCE_SNIPLETS = "sniplets"; // where to find code sniplets in the bundle
350     public static final String BUNDLE_RESOURCE_SCRIPTS = "scripts"; // where to find scrips in the bundle
351 }