]> git.basschouten.com Git - openhab-addons.git/blob
21f5ec2e08db32275792bbaeadd113296891fb11
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2021 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.somfytahoma.internal;
14
15 import java.util.*;
16
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.openhab.core.thing.ThingTypeUID;
19
20 /**
21  * The {@link SomfyTahomaBindingConstants} class defines common constants, which are
22  * used across the whole binding.
23  *
24  * @author Ondrej Pecta - Initial contribution
25  */
26 @NonNullByDefault
27 public class SomfyTahomaBindingConstants {
28
29     public static final String BINDING_ID = "somfytahoma";
30
31     // Things
32     // Bridge
33     public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
34
35     // Gateway
36     public static final ThingTypeUID THING_TYPE_GATEWAY = new ThingTypeUID(BINDING_ID, "gateway");
37
38     // Roller Shutter
39     public static final ThingTypeUID THING_TYPE_ROLLERSHUTTER = new ThingTypeUID(BINDING_ID, "rollershutter");
40
41     // Silent Roller Shutter
42     public static final ThingTypeUID THING_TYPE_ROLLERSHUTTER_SILENT = new ThingTypeUID(BINDING_ID,
43             "rollershutter_silent");
44
45     // Uno Roller Shutter
46     public static final ThingTypeUID THING_TYPE_ROLLERSHUTTER_UNO = new ThingTypeUID(BINDING_ID, "rollershutter_uno");
47
48     // Screen
49     public static final ThingTypeUID THING_TYPE_SCREEN = new ThingTypeUID(BINDING_ID, "screen");
50
51     // Venetian Blind
52     public static final ThingTypeUID THING_TYPE_VENETIANBLIND = new ThingTypeUID(BINDING_ID, "venetianblind");
53
54     // Exterior Screen
55     public static final ThingTypeUID THING_TYPE_EXTERIORSCREEN = new ThingTypeUID(BINDING_ID, "exteriorscreen");
56
57     // Exterior Venetian Blind
58     public static final ThingTypeUID THING_TYPE_EXTERIORVENETIANBLIND = new ThingTypeUID(BINDING_ID,
59             "exteriorvenetianblind");
60
61     // Garage Door
62     public static final ThingTypeUID THING_TYPE_GARAGEDOOR = new ThingTypeUID(BINDING_ID, "garagedoor");
63
64     // Awning
65     public static final ThingTypeUID THING_TYPE_AWNING = new ThingTypeUID(BINDING_ID, "awning");
66
67     // Actiongroup
68     public static final ThingTypeUID THING_TYPE_ACTIONGROUP = new ThingTypeUID(BINDING_ID, "actiongroup");
69
70     // On Off
71     public static final ThingTypeUID THING_TYPE_ONOFF = new ThingTypeUID(BINDING_ID, "onoff");
72
73     // Light
74     public static final ThingTypeUID THING_TYPE_LIGHT = new ThingTypeUID(BINDING_ID, "light");
75
76     // DimmerLight
77     public static final ThingTypeUID THING_TYPE_DIMMER_LIGHT = new ThingTypeUID(BINDING_ID, "dimmerlight");
78
79     // Light sensor
80     public static final ThingTypeUID THING_TYPE_LIGHTSENSOR = new ThingTypeUID(BINDING_ID, "lightsensor");
81
82     // Smoke sensor
83     public static final ThingTypeUID THING_TYPE_SMOKESENSOR = new ThingTypeUID(BINDING_ID, "smokesensor");
84
85     // Contact sensor
86     public static final ThingTypeUID THING_TYPE_CONTACTSENSOR = new ThingTypeUID(BINDING_ID, "contactsensor");
87
88     // Occupancy sensor
89     public static final ThingTypeUID THING_TYPE_OCCUPANCYSENSOR = new ThingTypeUID(BINDING_ID, "occupancysensor");
90
91     // Water sensor
92     public static final ThingTypeUID THING_TYPE_WATERSENSOR = new ThingTypeUID(BINDING_ID, "watersensor");
93
94     // Humidity sensor
95     public static final ThingTypeUID THING_TYPE_HUMIDITYSENSOR = new ThingTypeUID(BINDING_ID, "humiditysensor");
96
97     // Window
98     public static final ThingTypeUID THING_TYPE_WINDOW = new ThingTypeUID(BINDING_ID, "window");
99
100     // Alarm
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");
104
105     // Pod
106     public static final ThingTypeUID THING_TYPE_POD = new ThingTypeUID(BINDING_ID, "pod");
107
108     // Heating system
109     public static final ThingTypeUID THING_TYPE_VALVE_HEATING_SYSTEM = new ThingTypeUID(BINDING_ID,
110             "valveheatingsystem");
111     public static final ThingTypeUID THING_TYPE_ZWAVE_HEATING_SYSTEM = new ThingTypeUID(BINDING_ID, "heatingsystem");
112     public static final ThingTypeUID THING_TYPE_ONOFF_HEATING_SYSTEM = new ThingTypeUID(BINDING_ID,
113             "onoffheatingsystem");
114     public static final ThingTypeUID THING_TYPE_EXTERIOR_HEATING_SYSTEM = new ThingTypeUID(BINDING_ID,
115             "exteriorheatingsystem");
116
117     // Door lock
118     public static final ThingTypeUID THING_TYPE_DOOR_LOCK = new ThingTypeUID(BINDING_ID, "doorlock");
119
120     // Pergola
121     public static final ThingTypeUID THING_TYPE_PERGOLA = new ThingTypeUID(BINDING_ID, "pergola");
122
123     // Window handle
124     public static final ThingTypeUID THING_TYPE_WINDOW_HANDLE = new ThingTypeUID(BINDING_ID, "windowhandle");
125
126     // Temperature sensor
127     public static final ThingTypeUID THING_TYPE_TEMPERATURESENSOR = new ThingTypeUID(BINDING_ID, "temperaturesensor");
128
129     // Gate
130     public static final ThingTypeUID THING_TYPE_GATE = new ThingTypeUID(BINDING_ID, "gate");
131
132     // Curtains
133     public static final ThingTypeUID THING_TYPE_CURTAIN = new ThingTypeUID(BINDING_ID, "curtain");
134
135     // Electricity sensor
136     public static final ThingTypeUID THING_TYPE_ELECTRICITYSENSOR = new ThingTypeUID(BINDING_ID, "electricitysensor");
137
138     // Dock
139     public static final ThingTypeUID THING_TYPE_DOCK = new ThingTypeUID(BINDING_ID, "dock");
140
141     // Siren
142     public static final ThingTypeUID THING_TYPE_SIREN = new ThingTypeUID(BINDING_ID, "siren");
143
144     // Adjustable slats roller shutter
145     public static final ThingTypeUID THING_TYPE_ADJUSTABLE_SLATS_ROLLERSHUTTER = new ThingTypeUID(BINDING_ID,
146             "adjustableslatsrollershutter");
147
148     // MyFox Camera
149     public static final ThingTypeUID THING_TYPE_MYFOX_CAMERA = new ThingTypeUID(BINDING_ID, "myfoxcamera");
150
151     // Thermostat
152     public static final ThingTypeUID THING_TYPE_THERMOSTAT = new ThingTypeUID(BINDING_ID, "thermostat");
153
154     // List of all Channel ids
155     public static final String RSSI = "rssi";
156
157     // Gateway
158     public static final String STATUS = "status";
159
160     // Roller shutter, Awning, Screen, Blind, Garage door, Window, Curtain
161     public static final String CONTROL = "control";
162
163     // Adjustable slats roller shutter
164     public static final String ROCKER = "rocker";
165
166     // Silent roller shutter
167     public static final String CONTROL_SILENT = "control_silent";
168
169     // Blind
170     public static final String ORIENTATION = "orientation";
171     public static final String CLOSURE_AND_ORIENTATION = "closure_orientation";
172
173     // Action group
174     public static final String EXECUTE_ACTION = "execute_action";
175
176     // OnOff, Light
177     public static final String SWITCH = "switch";
178
179     // Dimmer Light
180     public static final String LIGHT_INTENSITY = "light_intensity";
181
182     // Door lock
183     public static final String LOCK = "lock";
184     public static final String OPEN = "open";
185
186     // Smoke sensor, Occupancy sensor, Contact sensor, Water sensor
187     public static final String CONTACT = "contact";
188     public static final String SENSOR_DEFECT = "sensor_defect";
189
190     // Humidity sensor
191     public static final String HUMIDITY = "humidity";
192
193     // Smoke sensor
194     public static final String ALARM_CHECK = "alarm_check";
195     public static final String RADIO_BATTERY = "radio_battery";
196     public static final String SENSOR_BATTERY = "sensor_battery";
197
198     // Light sensor
199     public static final String LUMINANCE = "luminance";
200
201     // Temperature sensor
202     public static final String TEMPERATURE = "temperature";
203
204     // Alarm
205     public static final String ALARM_COMMAND = "alarm_command";
206     public static final String ALARM_STATE = "alarm_state";
207     public static final String TARGET_ALARM_STATE = "target_alarm_state";
208     public static final String INTRUSION_CONTROL = "intrusion_control";
209     public static final String INTRUSION_STATE = "intrusion_state";
210
211     // Pod
212     public static final String CYCLIC_BUTTON = "cyclic_button";
213     public static final String LIGHTING_LED_POD_MODE = "lighting_led_pod_mode";
214
215     // Heating system
216     public static final String TARGET_TEMPERATURE = "target_temperature";
217     public static final String CURRENT_TEMPERATURE = "current_temperature";
218     public static final String CURRENT_STATE = "current_state";
219     public static final String BATTERY_LEVEL = "battery_level";
220     public static final String TARGET_HEATING_LEVEL = "target_heating_level";
221     public static final String HEATING_LEVEL = "heating_level";
222
223     // Thermostat
224     public static final String HEATING_MODE = "heating_mode";
225     public static final String DEROGATION_ACTIVATION = "derogation_activation";
226
227     // Thermostat & Valve Heating system
228     public static final String DEROGATED_TARGET_TEMPERATURE = "derogated_target_temperature";
229     public static final String DEROGATION_HEATING_MODE = "derogation_heating_mode";
230
231     // Valve heating system
232     public static final String CURRENT_HEATING_MODE = "current_heating_mode";
233     public static final String OPEN_CLOSED_VALVE = "open_closed_valve";
234     public static final String OPERATING_MODE = "operating_mode";
235
236     // Window handle
237     public static final String HANDLE_STATE = "handle_state";
238
239     // Gate
240     public static final String GATE_STATE = "gate_state";
241     public static final String GATE_COMMAND = "gate_command";
242     public static final String GATE_POSITION = "gate_position";
243
244     // ElectricitySensor
245     public static final String ENERGY_CONSUMPTION = "energy_consumption";
246
247     // Dock
248     public static final String BATTERY_STATUS = "battery_status";
249     public static final String SIREN_STATUS = "siren_status";
250     public static final String SHORT_BIP = "short_beep";
251     public static final String LONG_BIP = "long_beep";
252
253     // Siren
254     public static final String MEMORIZED_VOLUME = "memorized_volume";
255     public static final String ONOFF_STATE = "onoff";
256     public static final String BATTERY = "battery";
257
258     // Myfox Alarm
259     public static final String MYFOX_ALARM_COMMAND = "myfox_alarm_command";
260
261     // Myfox Alarm & Camera
262     public static final String CLOUD_STATUS = "cloud_status";
263
264     // Myfox Camera
265     public static final String SHUTTER = "shutter";
266
267     // Constants
268     public static final String TAHOMA_API_URL = "https://www.tahomalink.com/enduser-mobile-web/enduserAPI/";
269     public static final String TAHOMA_EVENTS_URL = TAHOMA_API_URL + "events/";
270     public static final String SETUP_URL = TAHOMA_API_URL + "setup/";
271     public static final String GATEWAYS_URL = SETUP_URL + "gateways/";
272     public static final String DEVICES_URL = SETUP_URL + "devices/";
273     public static final String REFRESH_URL = DEVICES_URL + "states/refresh";
274     public static final String EXEC_URL = TAHOMA_API_URL + "exec/";
275     public static final String DELETE_URL = EXEC_URL + "current/setup/";
276     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";
277     public static final int TAHOMA_TIMEOUT = 5;
278     public static final String UNAUTHORIZED = "Not logged in";
279     public static final int TYPE_PERCENT = 1;
280     public static final int TYPE_DECIMAL = 2;
281     public static final int TYPE_STRING = 3;
282     public static final int TYPE_BOOLEAN = 6;
283     public static final String UNAVAILABLE = "unavailable";
284     public static final String AUTHENTICATION_CHALLENGE = "HTTP protocol violation: Authentication challenge without WWW-Authenticate header";
285     public static final String TOO_MANY_REQUESTS = "Too many requests, try again later";
286     public static final int SUSPEND_TIME = 120;
287     public static final int RECONCILIATION_TIME = 600;
288
289     // Commands
290     public static final String COMMAND_MY = "my";
291     public static final String COMMAND_SET_CLOSURE = "setClosure";
292     public static final String COMMAND_SET_CLOSURE_ORIENTATION = "setClosureAndOrientation";
293     public static final String COMMAND_SET_DEPLOYMENT = "setDeployment";
294     public static final String COMMAND_SET_ORIENTATION = "setOrientation";
295     public static final String COMMAND_SET_CLOSURESPEED = "setClosureAndLinearSpeed";
296     public static final String COMMAND_SET_HEATINGLEVEL = "setHeatingLevel";
297     public static final String COMMAND_SET_PEDESTRIANPOSITION = "setPedestrianPosition";
298     public static final String COMMAND_SET_ROCKERPOSITION = "setRockerPosition";
299     public static final String COMMAND_SET_DEROGATION = "setDerogation";
300     public static final String COMMAND_UP = "up";
301     public static final String COMMAND_DOWN = "down";
302     public static final String COMMAND_OPEN = "open";
303     public static final String COMMAND_CLOSE = "close";
304     public static final String COMMAND_STOP = "stop";
305     public static final String COMMAND_OFF = "off";
306     public static final String COMMAND_CHECK_TRIGGER = "checkEventTrigger";
307
308     // States
309     public static final String NAME_STATE = "core:NameState";
310     public static final String RSSI_LEVEL_STATE = "core:RSSILevelState";
311     public static final String STATUS_STATE = "core:StatusState";
312     public static final String ENERGY_CONSUMPTION_STATE = "core:ElectricEnergyConsumptionState";
313     public static final String CYCLIC_BUTTON_STATE = "core:CyclicButtonState";
314     public static final String BATTERY_STATUS_STATE = "internal:BatteryStatusState";
315     public static final String SLATE_ORIENTATION_STATE = "core:SlateOrientationState";
316     public static final String CLOSURE_OR_ROCKER_STATE = "core:ClosureOrRockerPositionState";
317     public static final String MYFOX_SHUTTER_STATUS_STATE = "myfox:ShutterStatusState";
318     public static final String TARGET_CLOSURE_STATE = "core:TargetClosureState";
319     public static final String WATER_DETECTION_STATE = "core:WaterDetectionState";
320     public static final String CLOUD_DEVICE_STATUS_STATE = "core:CloudDeviceStatusState";
321     public static final String BATTERY_LEVEL_STATE = "core:BatteryLevelState";
322     public static final String SIREN_STATUS_STATE = "internal:SirenStatusState";
323     public static final String TARGET_TEMPERATURE_STATE = "core:TargetTemperatureState";
324     public static final String TARGET_ROOM_TEMPERATURE_STATE = "core:TargetRoomTemperatureState";
325     public static final String SMOKE_STATE = "core:SmokeState";
326     public static final String SENSOR_DEFECT_STATE = "core:SensorDefectState";
327     public static final String RADIO_PART_BATTERY_STATE = "io:MaintenanceRadioPartBatteryState";
328     public static final String SENSOR_PART_BATTERY_STATE = "io:MaintenanceSensorPartBatteryState";
329     public static final String ZWAVE_SET_POINT_TYPE_STATE = "zwave:SetPointTypeState";
330
331     // supported uiClasses
332     public static final String CLASS_ROLLER_SHUTTER = "RollerShutter";
333     public static final String CLASS_SCREEN = "Screen";
334     public static final String CLASS_VENETIAN_BLIND = "VenetianBlind";
335     public static final String CLASS_EXTERIOR_SCREEN = "ExteriorScreen";
336     public static final String CLASS_EXTERIOR_VENETIAN_BLIND = "ExteriorVenetianBlind";
337     public static final String CLASS_GARAGE_DOOR = "GarageDoor";
338     public static final String CLASS_AWNING = "Awning";
339     public static final String CLASS_ON_OFF = "OnOff";
340     public static final String CLASS_LIGHT = "Light";
341     public static final String CLASS_LIGHT_SENSOR = "LightSensor";
342     public static final String CLASS_SMOKE_SENSOR = "SmokeSensor";
343     public static final String CLASS_CONTACT_SENSOR = "ContactSensor";
344     public static final String CLASS_OCCUPANCY_SENSOR = "OccupancySensor";
345     public static final String CLASS_HUMIDITY_SENSOR = "HumiditySensor";
346     public static final String CLASS_WINDOW = "Window";
347     public static final String CLASS_ALARM = "Alarm";
348     public static final String CLASS_POD = "Pod";
349     public static final String CLASS_HEATING_SYSTEM = "HeatingSystem";
350     public static final String CLASS_EXTERIOR_HEATING_SYSTEM = "ExteriorHeatingSystem";
351     public static final String CLASS_DOOR_LOCK = "DoorLock";
352     public static final String CLASS_PERGOLA = "Pergola";
353     public static final String CLASS_WINDOW_HANDLE = "WindowHandle";
354     public static final String CLASS_TEMPERATURE_SENSOR = "TemperatureSensor";
355     public static final String CLASS_GATE = "Gate";
356     public static final String CLASS_CURTAIN = "Curtain";
357     public static final String CLASS_ELECTRICITY_SENSOR = "ElectricitySensor";
358     public static final String CLASS_DOCK = "Dock";
359     public static final String CLASS_SIREN = "Siren";
360     public static final String CLASS_ADJUSTABLE_SLATS_ROLLER_SHUTTER = "AdjustableSlatsRollerShutter";
361     public static final String CLASS_CAMERA = "Camera";
362
363     // unsupported uiClasses
364     public static final String THING_PROTOCOL_GATEWAY = "ProtocolGateway";
365     public static final String THING_REMOTE_CONTROLLER = "RemoteController";
366     public static final String THING_NETWORK_COMPONENT = "NetworkComponent";
367
368     // Event states
369     public static final String FAILED_EVENT = "FAILED";
370     public static final String COMPLETED_EVENT = "COMPLETED";
371
372     // supported thing types for discovery
373     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = new HashSet<>(Arrays.asList(THING_TYPE_GATEWAY,
374             THING_TYPE_ROLLERSHUTTER, THING_TYPE_ROLLERSHUTTER_SILENT, THING_TYPE_SCREEN, THING_TYPE_VENETIANBLIND,
375             THING_TYPE_EXTERIORSCREEN, THING_TYPE_EXTERIORVENETIANBLIND, THING_TYPE_GARAGEDOOR, THING_TYPE_AWNING,
376             THING_TYPE_ACTIONGROUP, THING_TYPE_ONOFF, THING_TYPE_LIGHT, THING_TYPE_LIGHTSENSOR, THING_TYPE_SMOKESENSOR,
377             THING_TYPE_CONTACTSENSOR, THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_WINDOW, THING_TYPE_INTERNAL_ALARM,
378             THING_TYPE_EXTERNAL_ALARM, THING_TYPE_POD, THING_TYPE_ZWAVE_HEATING_SYSTEM, THING_TYPE_ONOFF_HEATING_SYSTEM,
379             THING_TYPE_DOOR_LOCK, THING_TYPE_PERGOLA, THING_TYPE_WINDOW_HANDLE, THING_TYPE_TEMPERATURESENSOR,
380             THING_TYPE_GATE, THING_TYPE_CURTAIN, THING_TYPE_ELECTRICITYSENSOR, THING_TYPE_DOCK, THING_TYPE_SIREN,
381             THING_TYPE_ADJUSTABLE_SLATS_ROLLERSHUTTER, THING_TYPE_MYFOX_CAMERA, THING_TYPE_ROLLERSHUTTER_UNO,
382             THING_TYPE_WATERSENSOR, THING_TYPE_HUMIDITYSENSOR, THING_TYPE_MYFOX_ALARM, THING_TYPE_THERMOSTAT,
383             THING_TYPE_DIMMER_LIGHT, THING_TYPE_EXTERIOR_HEATING_SYSTEM, THING_TYPE_VALVE_HEATING_SYSTEM));
384
385     // somfy gateways
386     public static Map<Integer, String> gatewayTypes = new HashMap<Integer, String>() {
387         {
388             put(0, "VIRTUAL_KIZBOX");
389             put(2, "KIZBOX_V1");
390             put(15, "TAHOMA");
391             put(20, "VERISURE_ALARM_SYSTEM");
392             put(21, "KIZBOX_MINI");
393             put(24, "KIZBOX_V2");
394             put(25, "MYFOX_ALARM_SYSTEM");
395             put(27, "KIZBOX_MINI_VMBUS");
396             put(28, "KIZBOX_MINI_IO");
397             put(29, "TAHOMA_V2");
398             put(30, "KIZBOX_V2_3H");
399             put(31, "KIZBOX_V2_2H");
400             put(34, "CONNEXOON");
401             put(35, "JSW_CAMERA");
402             put(37, "KIZBOX_MINI_DAUGHTERBOARD");
403             put(38, "KIZBOX_MINI_DAUGHTERBOARD_ZWAVE");
404             put(39, "KIZBOX_MINI_DAUGHTERBOARD_ENOCEAN");
405             put(40, "KIZBOX_MINI_RAILDIN");
406             put(41, "TAHOMA_V2_RTS");
407             put(42, "KIZBOX_MINI_MODBUS");
408             put(43, "KIZBOX_MINI_OVP");
409             put(53, "CONNEXOON_RTS");
410             put(54, "OPENDOORS_LOCK_SYSTEM");
411             put(56, "CONNEXOON_RTS_JAPAN");
412             put(58, "HOME_PROTECT_SYSTEM");
413             put(62, "CONNEXOON_RTS_AUSTRALIA");
414             put(63, "THERMOSTAT_SOMFY_SYSTEM");
415             put(64, "BOX_ULTRA_LOW_COST_RTS");
416             put(65, "SMARTLY_MINI_DAUGHTERBOARD_ZWAVE");
417             put(66, "SMARTLY_MINIBOX_RAILDIN");
418             put(67, "TAHOMA_BEE");
419             put(72, "TAHOMA_RAIL_DIN");
420             put(77, "ELIOT");
421             put(88, "WISER");
422         }
423     };
424 }