2 * Copyright (c) 2010-2020 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.somfytahoma.internal;
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.openhab.core.thing.ThingTypeUID;
21 * The {@link SomfyTahomaBindingConstants} class defines common constants, which are
22 * used across the whole binding.
24 * @author Ondrej Pecta - Initial contribution
27 public class SomfyTahomaBindingConstants {
29 public static final String BINDING_ID = "somfytahoma";
33 public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
36 public static final ThingTypeUID THING_TYPE_GATEWAY = new ThingTypeUID(BINDING_ID, "gateway");
39 public static final ThingTypeUID THING_TYPE_ROLLERSHUTTER = new ThingTypeUID(BINDING_ID, "rollershutter");
41 // Silent Roller Shutter
42 public static final ThingTypeUID THING_TYPE_ROLLERSHUTTER_SILENT = new ThingTypeUID(BINDING_ID,
43 "rollershutter_silent");
46 public static final ThingTypeUID THING_TYPE_ROLLERSHUTTER_UNO = new ThingTypeUID(BINDING_ID, "rollershutter_uno");
49 public static final ThingTypeUID THING_TYPE_SCREEN = new ThingTypeUID(BINDING_ID, "screen");
52 public static final ThingTypeUID THING_TYPE_VENETIANBLIND = new ThingTypeUID(BINDING_ID, "venetianblind");
55 public static final ThingTypeUID THING_TYPE_EXTERIORSCREEN = new ThingTypeUID(BINDING_ID, "exteriorscreen");
57 // Exterior Venetian Blind
58 public static final ThingTypeUID THING_TYPE_EXTERIORVENETIANBLIND = new ThingTypeUID(BINDING_ID,
59 "exteriorvenetianblind");
62 public static final ThingTypeUID THING_TYPE_GARAGEDOOR = new ThingTypeUID(BINDING_ID, "garagedoor");
65 public static final ThingTypeUID THING_TYPE_AWNING = new ThingTypeUID(BINDING_ID, "awning");
68 public static final ThingTypeUID THING_TYPE_ACTIONGROUP = new ThingTypeUID(BINDING_ID, "actiongroup");
71 public static final ThingTypeUID THING_TYPE_ONOFF = new ThingTypeUID(BINDING_ID, "onoff");
74 public static final ThingTypeUID THING_TYPE_LIGHT = new ThingTypeUID(BINDING_ID, "light");
77 public static final ThingTypeUID THING_TYPE_DIMMER_LIGHT = new ThingTypeUID(BINDING_ID, "dimmerlight");
80 public static final ThingTypeUID THING_TYPE_LIGHTSENSOR = new ThingTypeUID(BINDING_ID, "lightsensor");
83 public static final ThingTypeUID THING_TYPE_SMOKESENSOR = new ThingTypeUID(BINDING_ID, "smokesensor");
86 public static final ThingTypeUID THING_TYPE_CONTACTSENSOR = new ThingTypeUID(BINDING_ID, "contactsensor");
89 public static final ThingTypeUID THING_TYPE_OCCUPANCYSENSOR = new ThingTypeUID(BINDING_ID, "occupancysensor");
92 public static final ThingTypeUID THING_TYPE_WATERSENSOR = new ThingTypeUID(BINDING_ID, "watersensor");
95 public static final ThingTypeUID THING_TYPE_HUMIDITYSENSOR = new ThingTypeUID(BINDING_ID, "humiditysensor");
98 public static final ThingTypeUID THING_TYPE_WINDOW = new ThingTypeUID(BINDING_ID, "window");
101 public static final ThingTypeUID THING_TYPE_INTERNAL_ALARM = new ThingTypeUID(BINDING_ID, "internalalarm");
102 public static final ThingTypeUID THING_TYPE_EXTERNAL_ALARM = new ThingTypeUID(BINDING_ID, "externalalarm");
103 public static final ThingTypeUID THING_TYPE_MYFOX_ALARM = new ThingTypeUID(BINDING_ID, "myfoxalarm");
106 public static final ThingTypeUID THING_TYPE_POD = new ThingTypeUID(BINDING_ID, "pod");
109 public static final ThingTypeUID THING_TYPE_HEATING_SYSTEM = new ThingTypeUID(BINDING_ID, "heatingsystem");
110 public static final ThingTypeUID THING_TYPE_ONOFF_HEATING_SYSTEM = new ThingTypeUID(BINDING_ID,
111 "onoffheatingsystem");
112 public static final ThingTypeUID THING_TYPE_EXTERIOR_HEATING_SYSTEM = new ThingTypeUID(BINDING_ID,
113 "exteriorheatingsystem");
116 public static final ThingTypeUID THING_TYPE_DOOR_LOCK = new ThingTypeUID(BINDING_ID, "doorlock");
119 public static final ThingTypeUID THING_TYPE_PERGOLA = new ThingTypeUID(BINDING_ID, "pergola");
122 public static final ThingTypeUID THING_TYPE_WINDOW_HANDLE = new ThingTypeUID(BINDING_ID, "windowhandle");
124 // Temperature sensor
125 public static final ThingTypeUID THING_TYPE_TEMPERATURESENSOR = new ThingTypeUID(BINDING_ID, "temperaturesensor");
128 public static final ThingTypeUID THING_TYPE_GATE = new ThingTypeUID(BINDING_ID, "gate");
131 public static final ThingTypeUID THING_TYPE_CURTAIN = new ThingTypeUID(BINDING_ID, "curtain");
133 // Electricity sensor
134 public static final ThingTypeUID THING_TYPE_ELECTRICITYSENSOR = new ThingTypeUID(BINDING_ID, "electricitysensor");
137 public static final ThingTypeUID THING_TYPE_DOCK = new ThingTypeUID(BINDING_ID, "dock");
140 public static final ThingTypeUID THING_TYPE_SIREN = new ThingTypeUID(BINDING_ID, "siren");
142 // Adjustable slats roller shutter
143 public static final ThingTypeUID THING_TYPE_ADJUSTABLE_SLATS_ROLLERSHUTTER = new ThingTypeUID(BINDING_ID,
144 "adjustableslatsrollershutter");
147 public static final ThingTypeUID THING_TYPE_MYFOX_CAMERA = new ThingTypeUID(BINDING_ID, "myfoxcamera");
150 public static final ThingTypeUID THING_TYPE_THERMOSTAT = new ThingTypeUID(BINDING_ID, "thermostat");
152 // List of all Channel ids
153 public static final String RSSI = "rssi";
156 public static final String STATUS = "status";
158 // Roller shutter, Awning, Screen, Blind, Garage door, Window, Curtain
159 public static final String CONTROL = "control";
161 // Adjustable slats roller shutter
162 public static final String ROCKER = "rocker";
164 // Silent roller shutter
165 public static final String CONTROL_SILENT = "control_silent";
168 public static final String ORIENTATION = "orientation";
169 public static final String CLOSURE_AND_ORIENTATION = "closure_orientation";
172 public static final String EXECUTE_ACTION = "execute_action";
175 public static final String SWITCH = "switch";
178 public static final String LIGHT_INTENSITY = "light_intensity";
181 public static final String LOCK = "lock";
182 public static final String OPEN = "open";
184 // Smoke sensor, Occupancy sensor, Contact sensor, Water sensor
185 public static final String CONTACT = "contact";
186 public static final String SENSOR_DEFECT = "sensor_defect";
189 public static final String HUMIDITY = "humidity";
192 public static final String ALARM_CHECK = "alarm_check";
193 public static final String RADIO_BATTERY = "radio_battery";
194 public static final String SENSOR_BATTERY = "sensor_battery";
197 public static final String LUMINANCE = "luminance";
199 // Temperature sensor
200 public static final String TEMPERATURE = "temperature";
203 public static final String ALARM_COMMAND = "alarm_command";
204 public static final String ALARM_STATE = "alarm_state";
205 public static final String TARGET_ALARM_STATE = "target_alarm_state";
206 public static final String INTRUSION_CONTROL = "intrusion_control";
207 public static final String INTRUSION_STATE = "intrusion_state";
210 public static final String CYCLIC_BUTTON = "cyclic_button";
211 public static final String LIGHTING_LED_POD_MODE = "lighting_led_pod_mode";
214 public static final String TARGET_TEMPERATURE = "target_temperature";
215 public static final String CURRENT_TEMPERATURE = "current_temperature";
216 public static final String CURRENT_STATE = "current_state";
217 public static final String BATTERY_LEVEL = "battery_level";
218 public static final String TARGET_HEATING_LEVEL = "target_heating_level";
219 public static final String HEATING_LEVEL = "heating_level";
222 public static final String HEATING_MODE = "heating_mode";
223 public static final String DEROGATION_HEATING_MODE = "derogation_heating_mode";
224 public static final String DEROGATION_ACTIVATION = "derogation_activation";
227 public static final String HANDLE_STATE = "handle_state";
230 public static final String GATE_STATE = "gate_state";
231 public static final String GATE_COMMAND = "gate_command";
234 public static final String ENERGY_CONSUMPTION = "energy_consumption";
237 public static final String BATTERY_STATUS = "battery_status";
238 public static final String SIREN_STATUS = "siren_status";
239 public static final String SHORT_BIP = "short_beep";
240 public static final String LONG_BIP = "long_beep";
243 public static final String MEMORIZED_VOLUME = "memorized_volume";
244 public static final String ONOFF_STATE = "onoff";
245 public static final String BATTERY = "battery";
248 public static final String MYFOX_ALARM_COMMAND = "myfox_alarm_command";
250 // Myfox Alarm & Camera
251 public static final String CLOUD_STATUS = "cloud_status";
254 public static final String SHUTTER = "shutter";
257 public static final String TAHOMA_API_URL = "https://www.tahomalink.com/enduser-mobile-web/enduserAPI/";
258 public static final String TAHOMA_EVENTS_URL = TAHOMA_API_URL + "events/";
259 public static final String SETUP_URL = TAHOMA_API_URL + "setup/";
260 public static final String GATEWAYS_URL = SETUP_URL + "gateways/";
261 public static final String DEVICES_URL = SETUP_URL + "devices/";
262 public static final String REFRESH_URL = DEVICES_URL + "states/refresh";
263 public static final String EXEC_URL = TAHOMA_API_URL + "exec/";
264 public static final String DELETE_URL = EXEC_URL + "current/setup/";
265 public static final String TAHOMA_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36";
266 public static final int TAHOMA_TIMEOUT = 5;
267 public static final String UNAUTHORIZED = "Not logged in";
268 public static final int TYPE_PERCENT = 1;
269 public static final int TYPE_DECIMAL = 2;
270 public static final int TYPE_STRING = 3;
271 public static final int TYPE_BOOLEAN = 6;
272 public static final String UNAVAILABLE = "unavailable";
273 public static final String AUTHENTICATION_CHALLENGE = "HTTP protocol violation: Authentication challenge without WWW-Authenticate header";
274 public static final String TOO_MANY_REQUESTS = "Too many requests, try again later";
275 public static final int SUSPEND_TIME = 120;
276 public static final int RECONCILIATION_TIME = 600;
279 public static final String COMMAND_MY = "my";
280 public static final String COMMAND_SET_CLOSURE = "setClosure";
281 public static final String COMMAND_SET_CLOSURE_ORIENTATION = "setClosureAndOrientation";
282 public static final String COMMAND_SET_DEPLOYMENT = "setDeployment";
283 public static final String COMMAND_SET_ORIENTATION = "setOrientation";
284 public static final String COMMAND_SET_CLOSURESPEED = "setClosureAndLinearSpeed";
285 public static final String COMMAND_SET_HEATINGLEVEL = "setHeatingLevel";
286 public static final String COMMAND_SET_PEDESTRIANPOSITION = "setPedestrianPosition";
287 public static final String COMMAND_SET_ROCKERPOSITION = "setRockerPosition";
288 public static final String COMMAND_UP = "up";
289 public static final String COMMAND_DOWN = "down";
290 public static final String COMMAND_OPEN = "open";
291 public static final String COMMAND_CLOSE = "close";
292 public static final String COMMAND_STOP = "stop";
293 public static final String COMMAND_OFF = "off";
294 public static final String COMMAND_CHECK_TRIGGER = "checkEventTrigger";
297 public static final String NAME_STATE = "core:NameState";
298 public static final String RSSI_LEVEL_STATE = "core:RSSILevelState";
299 public static final String STATUS_STATE = "core:StatusState";
300 public static final String ENERGY_CONSUMPTION_STATE = "core:ElectricEnergyConsumptionState";
301 public static final String CYCLIC_BUTTON_STATE = "core:CyclicButtonState";
302 public static final String BATTERY_STATUS_STATE = "internal:BatteryStatusState";
303 public static final String SLATE_ORIENTATION_STATE = "core:SlateOrientationState";
304 public static final String CLOSURE_OR_ROCKER_STATE = "core:ClosureOrRockerPositionState";
305 public static final String MYFOX_SHUTTER_STATUS_STATE = "myfox:ShutterStatusState";
306 public static final String TARGET_CLOSURE_STATE = "core:TargetClosureState";
307 public static final String WATER_DETECTION_STATE = "core:WaterDetectionState";
308 public static final String CLOUD_DEVICE_STATUS_STATE = "core:CloudDeviceStatusState";
309 public static final String BATTERY_LEVEL_STATE = "core:BatteryLevelState";
310 public static final String SIREN_STATUS_STATE = "internal:SirenStatusState";
311 public static final String TARGET_TEMPERATURE_STATE = "core:TargetTemperatureState";
312 public static final String SMOKE_STATE = "core:SmokeState";
313 public static final String SENSOR_DEFECT_STATE = "core:SensorDefectState";
314 public static final String RADIO_PART_BATTERY_STATE = "io:MaintenanceRadioPartBatteryState";
315 public static final String SENSOR_PART_BATTERY_STATE = "io:MaintenanceSensorPartBatteryState";
317 // supported uiClasses
318 public static final String CLASS_ROLLER_SHUTTER = "RollerShutter";
319 public static final String CLASS_SCREEN = "Screen";
320 public static final String CLASS_VENETIAN_BLIND = "VenetianBlind";
321 public static final String CLASS_EXTERIOR_SCREEN = "ExteriorScreen";
322 public static final String CLASS_EXTERIOR_VENETIAN_BLIND = "ExteriorVenetianBlind";
323 public static final String CLASS_GARAGE_DOOR = "GarageDoor";
324 public static final String CLASS_AWNING = "Awning";
325 public static final String CLASS_ON_OFF = "OnOff";
326 public static final String CLASS_LIGHT = "Light";
327 public static final String CLASS_LIGHT_SENSOR = "LightSensor";
328 public static final String CLASS_SMOKE_SENSOR = "SmokeSensor";
329 public static final String CLASS_CONTACT_SENSOR = "ContactSensor";
330 public static final String CLASS_OCCUPANCY_SENSOR = "OccupancySensor";
331 public static final String CLASS_HUMIDITY_SENSOR = "HumiditySensor";
332 public static final String CLASS_WINDOW = "Window";
333 public static final String CLASS_ALARM = "Alarm";
334 public static final String CLASS_POD = "Pod";
335 public static final String CLASS_HEATING_SYSTEM = "HeatingSystem";
336 public static final String CLASS_EXTERIOR_HEATING_SYSTEM = "ExteriorHeatingSystem";
337 public static final String CLASS_DOOR_LOCK = "DoorLock";
338 public static final String CLASS_PERGOLA = "Pergola";
339 public static final String CLASS_WINDOW_HANDLE = "WindowHandle";
340 public static final String CLASS_TEMPERATURE_SENSOR = "TemperatureSensor";
341 public static final String CLASS_GATE = "Gate";
342 public static final String CLASS_CURTAIN = "Curtain";
343 public static final String CLASS_ELECTRICITY_SENSOR = "ElectricitySensor";
344 public static final String CLASS_DOCK = "Dock";
345 public static final String CLASS_SIREN = "Siren";
346 public static final String CLASS_ADJUSTABLE_SLATS_ROLLER_SHUTTER = "AdjustableSlatsRollerShutter";
347 public static final String CLASS_CAMERA = "Camera";
349 // unsupported uiClasses
350 public static final String THING_PROTOCOL_GATEWAY = "ProtocolGateway";
351 public static final String THING_REMOTE_CONTROLLER = "RemoteController";
352 public static final String THING_NETWORK_COMPONENT = "NetworkComponent";
355 public static final String FAILED_EVENT = "FAILED";
356 public static final String COMPLETED_EVENT = "COMPLETED";
358 // supported thing types for discovery
359 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = new HashSet<>(Arrays.asList(THING_TYPE_GATEWAY,
360 THING_TYPE_ROLLERSHUTTER, THING_TYPE_ROLLERSHUTTER_SILENT, THING_TYPE_SCREEN, THING_TYPE_VENETIANBLIND,
361 THING_TYPE_EXTERIORSCREEN, THING_TYPE_EXTERIORVENETIANBLIND, THING_TYPE_GARAGEDOOR, THING_TYPE_AWNING,
362 THING_TYPE_ACTIONGROUP, THING_TYPE_ONOFF, THING_TYPE_LIGHT, THING_TYPE_LIGHTSENSOR, THING_TYPE_SMOKESENSOR,
363 THING_TYPE_CONTACTSENSOR, THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_WINDOW, THING_TYPE_INTERNAL_ALARM,
364 THING_TYPE_EXTERNAL_ALARM, THING_TYPE_POD, THING_TYPE_HEATING_SYSTEM, THING_TYPE_ONOFF_HEATING_SYSTEM,
365 THING_TYPE_DOOR_LOCK, THING_TYPE_PERGOLA, THING_TYPE_WINDOW_HANDLE, THING_TYPE_TEMPERATURESENSOR,
366 THING_TYPE_GATE, THING_TYPE_CURTAIN, THING_TYPE_ELECTRICITYSENSOR, THING_TYPE_DOCK, THING_TYPE_SIREN,
367 THING_TYPE_ADJUSTABLE_SLATS_ROLLERSHUTTER, THING_TYPE_MYFOX_CAMERA, THING_TYPE_ROLLERSHUTTER_UNO,
368 THING_TYPE_WATERSENSOR, THING_TYPE_HUMIDITYSENSOR, THING_TYPE_MYFOX_ALARM, THING_TYPE_THERMOSTAT,
369 THING_TYPE_DIMMER_LIGHT, THING_TYPE_EXTERIOR_HEATING_SYSTEM));
372 public static Map<Integer, String> gatewayTypes = new HashMap<Integer, String>() {
374 put(0, "VIRTUAL_KIZBOX");
377 put(20, "VERISURE_ALARM_SYSTEM");
378 put(21, "KIZBOX_MINI");
379 put(24, "KIZBOX_V2");
380 put(25, "MYFOX_ALARM_SYSTEM");
381 put(27, "KIZBOX_MINI_VMBUS");
382 put(28, "KIZBOX_MINI_IO");
383 put(29, "TAHOMA_V2");
384 put(30, "KIZBOX_V2_3H");
385 put(31, "KIZBOX_V2_2H");
386 put(34, "CONNEXOON");
387 put(35, "JSW_CAMERA");
388 put(37, "KIZBOX_MINI_DAUGHTERBOARD");
389 put(38, "KIZBOX_MINI_DAUGHTERBOARD_ZWAVE");
390 put(39, "KIZBOX_MINI_DAUGHTERBOARD_ENOCEAN");
391 put(40, "KIZBOX_MINI_RAILDIN");
392 put(41, "TAHOMA_V2_RTS");
393 put(42, "KIZBOX_MINI_MODBUS");
394 put(43, "KIZBOX_MINI_OVP");
395 put(53, "CONNEXOON_RTS");
396 put(54, "OPENDOORS_LOCK_SYSTEM");
397 put(56, "CONNEXOON_RTS_JAPAN");
398 put(58, "HOME_PROTECT_SYSTEM");
399 put(62, "CONNEXOON_RTS_AUSTRALIA");
400 put(63, "THERMOSTAT_SOMFY_SYSTEM");
401 put(64, "BOX_ULTRA_LOW_COST_RTS");
402 put(65, "SMARTLY_MINI_DAUGHTERBOARD_ZWAVE");
403 put(66, "SMARTLY_MINIBOX_RAILDIN");
404 put(67, "TAHOMA_BEE");
405 put(72, "TAHOMA_RAIL_DIN");