]> git.basschouten.com Git - openhab-addons.git/blob
2c0e00f10a06f248347968dac24b7c914037b650
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2022 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.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 ShellyBindingConstants} class defines common constants, which are
27  * used across the whole binding.
28  *
29  * @author Markus Michels - Initial contribution
30  */
31 @NonNullByDefault
32 public class ShellyBindingConstants {
33
34     public static final String VENDOR = "Shelly";
35     public static final String BINDING_ID = "shelly";
36     public static final String SYSTEM_ID = "system";
37
38     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
39             .unmodifiableSet(Stream.of(THING_TYPE_SHELLY1, THING_TYPE_SHELLY1L, THING_TYPE_SHELLY1PM,
40                     THING_TYPE_SHELLYEM, THING_TYPE_SHELLY3EM, THING_TYPE_SHELLY2_RELAY, THING_TYPE_SHELLY2_ROLLER,
41                     THING_TYPE_SHELLY25_RELAY, THING_TYPE_SHELLY25_ROLLER, THING_TYPE_SHELLY4PRO, THING_TYPE_SHELLYPLUG,
42                     THING_TYPE_SHELLYPLUGS, THING_TYPE_SHELLYPLUGU1, THING_TYPE_SHELLYUNI, THING_TYPE_SHELLYDIMMER,
43                     THING_TYPE_SHELLYDIMMER2, THING_TYPE_SHELLYIX3, THING_TYPE_SHELLYBULB, THING_TYPE_SHELLYDUO,
44                     THING_TYPE_SHELLYVINTAGE, THING_TYPE_SHELLYDUORGBW, THING_TYPE_SHELLYRGBW2_COLOR,
45                     THING_TYPE_SHELLYRGBW2_WHITE, THING_TYPE_SHELLYHT, THING_TYPE_SHELLYTRV, THING_TYPE_SHELLYSENSE,
46                     THING_TYPE_SHELLYEYE, THING_TYPE_SHELLYSMOKE, THING_TYPE_SHELLYGAS, THING_TYPE_SHELLYFLOOD,
47                     THING_TYPE_SHELLYDOORWIN, THING_TYPE_SHELLYDOORWIN2, THING_TYPE_SHELLYBUTTON1,
48                     THING_TYPE_SHELLYBUTTON2, THING_TYPE_SHELLMOTION, THING_TYPE_SHELLMOTION,
49                     THING_TYPE_SHELLYPROTECTED, THING_TYPE_SHELLYUNKNOWN).collect(Collectors.toSet()));
50
51     // Thing Configuration Properties
52     public static final String CONFIG_DEVICEIP = "deviceIp";
53     public static final String CONFIG_HTTP_USERID = "userId";
54     public static final String CONFIG_HTTP_PASSWORD = "password";
55     public static final String CONFIG_UPDATE_INTERVAL = "updateInterval";
56
57     public static final String PROPERTY_SERVICE_NAME = "serviceName";
58     public static final String PROPERTY_DEV_NAME = "deviceName";
59     public static final String PROPERTY_DEV_TYPE = "deviceType";
60     public static final String PROPERTY_DEV_MODE = "deviceMode";
61     public static final String PROPERTY_DEV_GEN = "deviceGeneration";
62     public static final String PROPERTY_HWREV = "deviceHwRev";
63     public static final String PROPERTY_HWBATCH = "deviceHwBatch";
64     public static final String PROPERTY_UPDATE_PERIOD = "devUpdatePeriod";
65     public static final String PROPERTY_NUM_RELAYS = "numberRelays";
66     public static final String PROPERTY_NUM_ROLLERS = "numberRollers";
67     public static final String PROPERTY_NUM_METER = "numberMeters";
68     public static final String PROPERTY_LAST_ACTIVE = "lastActive";
69     public static final String PROPERTY_WIFI_NETW = "wifiNetwork";
70     public static final String PROPERTY_UPDATE_STATUS = "updateStatus";
71     public static final String PROPERTY_UPDATE_AVAILABLE = "updateAvailable";
72     public static final String PROPERTY_UPDATE_CURR_VERS = "updateCurrentVersion";
73     public static final String PROPERTY_UPDATE_NEW_VERS = "updateNewVersion";
74     public static final String PROPERTY_COAP_DESCR = "coapDeviceDescr";
75     public static final String PROPERTY_COAP_VERSION = "coapVersion";
76     public static final String PROPERTY_COIOTAUTO = "coiotAutoEnable";
77
78     // Relay
79     public static final String CHANNEL_GROUP_RELAY_CONTROL = "relay";
80     public static final String CHANNEL_OUTPUT_NAME = "outputName";
81     public static final String CHANNEL_OUTPUT = "output";
82     public static final String CHANNEL_INPUT = "input";
83     public static final String CHANNEL_INPUT1 = "input1";
84     public static final String CHANNEL_INPUT2 = "input2";
85     public static final String CHANNEL_BRIGHTNESS = "brightness";
86
87     public static final String CHANNEL_TIMER_AUTOON = "autoOn";
88     public static final String CHANNEL_TIMER_AUTOOFF = "autoOff";
89     public static final String CHANNEL_TIMER_ACTIVE = "timerActive";
90
91     // Roller
92     public static final String CHANNEL_GROUP_ROL_CONTROL = "roller";
93     public static final String CHANNEL_ROL_CONTROL_CONTROL = "control";
94     public static final String CHANNEL_ROL_CONTROL_POS = "rollerpos";
95     public static final String CHANNEL_ROL_CONTROL_FAV = "rollerFav";
96     public static final String CHANNEL_ROL_CONTROL_TIMER = "timer";
97     public static final String CHANNEL_ROL_CONTROL_STATE = "state";
98     public static final String CHANNEL_ROL_CONTROL_STOPR = "stopReason";
99     public static final String CHANNEL_ROL_CONTROL_SAFETY = "safety";
100
101     // Dimmer
102     public static final String CHANNEL_GROUP_DIMMER_CONTROL = CHANNEL_GROUP_RELAY_CONTROL;
103
104     // Power meter
105     public static final String CHANNEL_GROUP_METER = "meter";
106     public static final String CHANNEL_METER_CURRENTWATTS = "currentWatts";
107     public static final String CHANNEL_METER_LASTMIN = "lastPower";
108     public static final String CHANNEL_METER_LASTMIN1 = CHANNEL_METER_LASTMIN + "1";
109     public static final String CHANNEL_METER_TOTALKWH = "totalKWH";
110     public static final String CHANNEL_EMETER_TOTALRET = "returnedKWH";
111     public static final String CHANNEL_EMETER_REACTWATTS = "reactiveWatts";
112     public static final String CHANNEL_EMETER_VOLTAGE = "voltage";
113     public static final String CHANNEL_EMETER_CURRENT = "current";
114     public static final String CHANNEL_EMETER_PFACTOR = "powerFactor";
115
116     public static final String CHANNEL_GROUP_SENSOR = "sensors";
117     public static final String CHANNEL_SENSOR_TEMP = "temperature";
118     public static final String CHANNEL_SENSOR_HUM = "humidity";
119     public static final String CHANNEL_SENSOR_LUX = "lux";
120     public static final String CHANNEL_SENSOR_PPM = "ppm";
121     public static final String CHANNEL_SENSOR_VOLTAGE = "voltage";
122     public static final String CHANNEL_SENSOR_ILLUM = "illumination";
123     public static final String CHANNEL_SENSOR_VIBRATION = "vibration";
124     public static final String CHANNEL_SENSOR_TILT = "tilt";
125     public static final String CHANNEL_SENSOR_FLOOD = "flood";
126     public static final String CHANNEL_SENSOR_SMOKE = "smoke";
127     public static final String CHANNEL_SENSOR_STATE = "state";
128     public static final String CHANNEL_SENSOR_VALVE = "valve";
129     public static final String CHANNEL_SENSOR_SSTATE = "status"; // Shelly Gas
130     public static final String CHANNEL_SENSOR_MOTION_ACT = "motionActive";
131     public static final String CHANNEL_SENSOR_MOTION = "motion";
132     public static final String CHANNEL_SENSOR_MOTION_TS = "motionTimestamp";
133     public static final String CHANNEL_SENSOR_SLEEPTIME = "sensorSleepTime";
134     public static final String CHANNEL_SENSOR_ALARM_STATE = "alarmState";
135     public static final String CHANNEL_SENSOR_ERROR = "lastError";
136
137     public static final String CHANNEL_CONTROL_SETTEMP = "targetTemp"; // Shelly TRV: target temp
138     public static final String CHANNEL_CONTROL_POSITION = "position"; // Shelly TRV: Valve position
139     public static final String CHANNEL_CONTROL_MODE = "mode"; // Shelly TRV
140     public static final String CHANNEL_CONTROL_PROFILE = "profile"; // Shelly TRV
141     public static final String CHANNEL_CONTROL_BCONTROL = "boost"; // Shelly TRV
142     public static final String CHANNEL_CONTROL_BTIMER = "boostTimer"; // Shelly TRV
143
144     // External sensors for Shelly1/1PM
145     public static final String CHANNEL_ESENDOR_TEMP1 = CHANNEL_SENSOR_TEMP + "1";
146     public static final String CHANNEL_ESENDOR_TEMP2 = CHANNEL_SENSOR_TEMP + "2";
147     public static final String CHANNEL_ESENDOR_TEMP3 = CHANNEL_SENSOR_TEMP + "3";
148     public static final String CHANNEL_ESENDOR_HUMIDITY = CHANNEL_SENSOR_HUM;
149
150     public static final String CHANNEL_GROUP_CONTROL = "control";
151     public static final String CHANNEL_SENSE_KEY = "key";
152
153     public static final String CHANNEL_GROUP_BATTERY = "battery";
154     public static final String CHANNEL_SENSOR_BAT_LEVEL = "batteryLevel";
155     public static final String CHANNEL_SENSOR_BAT_LOW = "lowBattery";
156
157     public static final String CHANNEL_GROUP_LIGHT_CONTROL = "control";
158     public static final String CHANNEL_LIGHT_COLOR_MODE = "mode";
159     public static final String CHANNEL_LIGHT_POWER = "power";
160     public static final String CHANNEL_LIGHT_DEFSTATE = "defaultState";
161     public static final String CHANNEL_GROUP_LIGHT_CHANNEL = "channel";
162
163     // Bulb/RGBW2 in color mode
164     public static final String CHANNEL_GROUP_COLOR_CONTROL = "color";
165     public static final String CHANNEL_COLOR_PICKER = "hsb";
166     public static final String CHANNEL_COLOR_FULL = "full";
167     public static final String CHANNEL_COLOR_RED = "red";
168     public static final String CHANNEL_COLOR_GREEN = "green";
169     public static final String CHANNEL_COLOR_BLUE = "blue";
170     public static final String CHANNEL_COLOR_WHITE = "white";
171     public static final String CHANNEL_COLOR_GAIN = "gain";
172     public static final String CHANNEL_COLOR_EFFECT = "effect";
173
174     // Bulb/RGBW2/Dup in White Mode
175     public static final String CHANNEL_GROUP_WHITE_CONTROL = "white";
176     public static final String CHANNEL_COLOR_TEMP = "temperature";
177
178     // Device Status
179     public static final String CHANNEL_GROUP_DEV_STATUS = "device";
180     public static final String CHANNEL_DEVST_NAME = "deviceName";
181     public static final String CHANNEL_DEVST_UPTIME = "uptime";
182     public static final String CHANNEL_DEVST_HEARTBEAT = "heartBeat";
183     public static final String CHANNEL_DEVST_RSSI = "wifiSignal";
184     public static final String CHANNEL_DEVST_ITEMP = "internalTemp";
185     public static final String CHANNEL_DEVST_WAKEUP = "wakeupReason";
186     public static final String CHANNEL_DEVST_ALARM = "alarm";
187     public static final String CHANNEL_DEVST_ACCUWATTS = "accumulatedWatts";
188     public static final String CHANNEL_DEVST_ACCUTOTAL = "accumulatedWTotal";
189     public static final String CHANNEL_DEVST_ACCURETURNED = "accumulatedReturned";
190     public static final String CHANNEL_DEVST_CHARGER = "charger";
191     public static final String CHANNEL_DEVST_UPDATE = "updateAvailable";
192     public static final String CHANNEL_DEVST_SELFTTEST = "selfTest";
193     public static final String CHANNEL_DEVST_VOLTAGE = "supplyVoltage";
194     public static final String CHANNEL_DEVST_CALIBRATED = "calibrated";
195     public static final String CHANNEL_DEVST_SCHEDULE = "schedule";
196
197     public static final String CHANNEL_LED_STATUS_DISABLE = "statusLed";
198     public static final String CHANNEL_LED_POWER_DISABLE = "powerLed";
199     // Button/xi3
200     public static final String CHANNEL_GROUP_STATUS = "status";
201     public static final String CHANNEL_STATUS_EVENTTYPE = "lastEvent";
202     public static final String CHANNEL_STATUS_EVENTTYPE1 = CHANNEL_STATUS_EVENTTYPE + "1";
203     public static final String CHANNEL_STATUS_EVENTTYPE2 = CHANNEL_STATUS_EVENTTYPE + "2";
204     public static final String CHANNEL_STATUS_EVENTCOUNT = "eventCount";
205     public static final String CHANNEL_STATUS_EVENTCOUNT1 = CHANNEL_STATUS_EVENTCOUNT + "1";
206     public static final String CHANNEL_STATUS_EVENTCOUNT2 = CHANNEL_STATUS_EVENTCOUNT + "2";
207
208     // General
209     public static final String CHANNEL_LAST_UPDATE = "lastUpdate";
210     public static final String CHANNEL_EVENT_TRIGGER = "event";
211     public static final String CHANNEL_BUTTON_TRIGGER = "button";
212     public static final String CHANNEL_BUTTON_TRIGGER1 = CHANNEL_BUTTON_TRIGGER + "1";
213     public static final String CHANNEL_BUTTON_TRIGGER2 = CHANNEL_BUTTON_TRIGGER + "2";
214
215     public static final String SERVICE_TYPE = "_http._tcp.local.";
216     public static final String SHELLY_API_MIN_FWVERSION = "v1.8.2";
217     public static final String SHELLY_API_MIN_FWCOIOT = "v1.6";// v1.6.0+
218     public static final String SHELLY_API_FWCOIOT2 = "v1.8";// CoAP 2 with FW 1.8+
219     public static final String SHELLY_API_FW_110 = "v1.10"; // FW 1.10 or newer detected, activates some add feature
220
221     // Alarm types/messages
222     public static final String ALARM_TYPE_NONE = "NONE";
223     public static final String ALARM_TYPE_RESTARTED = "RESTARTED";
224     public static final String ALARM_TYPE_OVERTEMP = "OVERTEMP";
225     public static final String ALARM_TYPE_OVERPOWER = "OVERPOWER";
226     public static final String ALARM_TYPE_OVERLOAD = "OVERLOAD";
227     public static final String ALARM_TYPE_LOADERR = "LOAD_ERROR";
228     public static final String ALARM_TYPE_SENSOR_ERROR = "SENSOR_ERROR";
229     public static final String ALARM_TYPE_LOW_BATTERY = "LOW_BATTERY";
230     public static final String ALARM_TYPE_VALVE_ERROR = "VALVE_ERROR";
231     public static final String EVENT_TYPE_VIBRATION = "VIBRATION";
232
233     // Event types
234     public static final String EVENT_TYPE_RELAY = "relay";
235     public static final String EVENT_TYPE_ROLLER = "roller";
236     public static final String EVENT_TYPE_LIGHT = "light";
237     public static final String EVENT_TYPE_SENSORDATA = "report";
238
239     // URI for the EventServlet
240     public static final String SHELLY_CALLBACK_URI = "/shelly/event";
241
242     public static final int DIM_STEPSIZE = 5;
243
244     // Formatting: Number of scaling digits
245     public static final int DIGITS_NONE = 0;
246     public static final int DIGITS_WATT = 2;
247     public static final int DIGITS_KWH = 3;
248     public static final int DIGITS_VOLT = 1;
249     public static final int DIGITS_TEMP = 1;
250     public static final int DIGITS_LUX = 0;
251     public static final int DIGITS_PERCENT = 1;
252
253     public static final int SHELLY_API_TIMEOUT_MS = 15000;
254     public static final int UPDATE_STATUS_INTERVAL_SECONDS = 3; // check for updates every x sec
255     public static final int UPDATE_SKIP_COUNT = 20; // update every x triggers or when a key was pressed
256     public static final int UPDATE_MIN_DELAY = 15;// update every x triggers or when a key was pressed
257     public static final int UPDATE_SETTINGS_INTERVAL_SECONDS = 60; // check for updates every x sec
258     public static final int HEALTH_CHECK_INTERVAL_SEC = 300; // Health check interval, 5min
259     public static final int VIBRATION_FILTER_SEC = 5; // Absore duplicate vibration events for xx sec
260 }