]> git.basschouten.com Git - openhab-addons.git/blob
6de90dbbdf015101c41ab428770c0fd54ca65b5c
[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.enocean.internal;
14
15 import java.util.Map;
16 import java.util.Set;
17
18 import javax.measure.quantity.Angle;
19 import javax.measure.quantity.Dimensionless;
20 import javax.measure.quantity.ElectricPotential;
21 import javax.measure.quantity.Energy;
22 import javax.measure.quantity.Illuminance;
23 import javax.measure.quantity.Power;
24 import javax.measure.quantity.Speed;
25 import javax.measure.quantity.Temperature;
26 import javax.measure.quantity.Time;
27 import javax.measure.quantity.Volume;
28
29 import org.eclipse.jdt.annotation.NonNullByDefault;
30 import org.openhab.core.items.ItemUtil;
31 import org.openhab.core.library.CoreItemFactory;
32 import org.openhab.core.library.dimension.VolumetricFlowRate;
33 import org.openhab.core.thing.DefaultSystemChannelTypeProvider;
34 import org.openhab.core.thing.ThingTypeUID;
35 import org.openhab.core.thing.type.ChannelTypeUID;
36
37 /**
38  * The {@link EnOceanBinding} class defines common constants, which are
39  * used across the whole binding.
40  *
41  * @author Daniel Weber - Initial contribution
42  */
43 @NonNullByDefault
44 public class EnOceanBindingConstants {
45
46     public static final String BINDING_ID = "enocean";
47
48     // bridge
49     public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
50
51     // List of all Thing Type UIDs
52     public static final ThingTypeUID THING_TYPE_PUSHBUTTON = new ThingTypeUID(BINDING_ID, "pushButton");
53     public static final ThingTypeUID THING_TYPE_ROCKERSWITCH = new ThingTypeUID(BINDING_ID, "rockerSwitch");
54     public static final ThingTypeUID THING_TYPE_CLASSICDEVICE = new ThingTypeUID(BINDING_ID, "classicDevice");
55
56     public static final ThingTypeUID THING_TYPE_CENTRALCOMMAND = new ThingTypeUID(BINDING_ID, "centralCommand");
57     public static final ThingTypeUID THING_TYPE_ROOMOPERATINGPANEL = new ThingTypeUID(BINDING_ID, "roomOperatingPanel");
58     public static final ThingTypeUID THING_TYPE_MECHANICALHANDLE = new ThingTypeUID(BINDING_ID, "mechanicalHandle");
59     public static final ThingTypeUID THING_TYPE_CONTACT = new ThingTypeUID(BINDING_ID, "contact");
60     public static final ThingTypeUID THING_TYPE_MEASUREMENTSWITCH = new ThingTypeUID(BINDING_ID, "measurementSwitch");
61     public static final ThingTypeUID THING_TYPE_TEMPERATURESENSOR = new ThingTypeUID(BINDING_ID, "temperatureSensor");
62     public static final ThingTypeUID THING_TYPE_TEMPERATUREHUMIDITYSENSOR = new ThingTypeUID(BINDING_ID,
63             "temperatureHumiditySensor");
64     public static final ThingTypeUID THING_TYPE_GASSENSOR = new ThingTypeUID(BINDING_ID, "gasSensor");
65     public static final ThingTypeUID THING_TYPE_AUTOMATEDMETERSENSOR = new ThingTypeUID(BINDING_ID,
66             "automatedMeterSensor");
67     public static final ThingTypeUID THING_TYPE_THERMOSTAT = new ThingTypeUID(BINDING_ID, "thermostat");
68     public static final ThingTypeUID THING_TYPE_OCCUPANCYSENSOR = new ThingTypeUID(BINDING_ID, "occupancySensor");
69     public static final ThingTypeUID THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR = new ThingTypeUID(BINDING_ID,
70             "lightTemperatureOccupancySensor");
71     public static final ThingTypeUID THING_TYPE_LIGHTSENSOR = new ThingTypeUID(BINDING_ID, "lightSensor");
72     public static final ThingTypeUID THING_TYPE_ENVIRONMENTALSENSOR = new ThingTypeUID(BINDING_ID,
73             "environmentalSensor");
74     public static final ThingTypeUID THING_TYPE_GENERICTHING = new ThingTypeUID(BINDING_ID, "genericThing");
75     public static final ThingTypeUID THING_TYPE_ROLLERSHUTTER = new ThingTypeUID(BINDING_ID, "rollershutter");
76     public static final ThingTypeUID THING_TYPE_MULTFUNCTIONSMOKEDETECTOR = new ThingTypeUID(BINDING_ID,
77             "multiFunctionSmokeDetector");
78
79     public static final ThingTypeUID THING_TYPE_HEATRECOVERYVENTILATION = new ThingTypeUID(BINDING_ID,
80             "heatRecoveryVentilation");
81     public static final ThingTypeUID THING_TYPE_WINDOWSASHHANDLESENSOR = new ThingTypeUID(BINDING_ID,
82             "windowSashHandleSensor");
83
84     public static final Set<ThingTypeUID> SUPPORTED_DEVICE_THING_TYPES_UIDS = Set.of(THING_TYPE_PUSHBUTTON,
85             THING_TYPE_ROCKERSWITCH, THING_TYPE_CLASSICDEVICE, THING_TYPE_CENTRALCOMMAND, THING_TYPE_ROOMOPERATINGPANEL,
86             THING_TYPE_MECHANICALHANDLE, THING_TYPE_CONTACT, THING_TYPE_MEASUREMENTSWITCH, THING_TYPE_TEMPERATURESENSOR,
87             THING_TYPE_TEMPERATUREHUMIDITYSENSOR, THING_TYPE_GASSENSOR, THING_TYPE_GENERICTHING,
88             THING_TYPE_ROLLERSHUTTER, THING_TYPE_OCCUPANCYSENSOR, THING_TYPE_LIGHTTEMPERATUREOCCUPANCYSENSOR,
89             THING_TYPE_LIGHTSENSOR, THING_TYPE_ENVIRONMENTALSENSOR, THING_TYPE_AUTOMATEDMETERSENSOR,
90             THING_TYPE_THERMOSTAT, THING_TYPE_MULTFUNCTIONSMOKEDETECTOR, THING_TYPE_HEATRECOVERYVENTILATION,
91             THING_TYPE_WINDOWSASHHANDLESENSOR);
92
93     // List of all Channel Type Ids, these type ids are also used as channel ids during dynamic creation of channels
94     // this makes it a lot easier as we do not have to manage a type id and an id, drawback long channel names
95     public static final String CHANNEL_REPEATERMODE = "repeaterMode";
96     public static final String CHANNEL_SETBASEID = "setBaseId";
97     public static final String CHANNEL_GENERAL_SWITCHING = "generalSwitch";
98
99     public static final String CHANNEL_GENERAL_SWITCHINGA = "generalSwitchA"; // used for D2-01-12 EEP
100     public static final String CHANNEL_GENERAL_SWITCHINGB = "generalSwitchB"; // used for D2-01-12 EEP
101
102     public static final String CHANNEL_DIMMER = "dimmer";
103     public static final String CHANNEL_ROLLERSHUTTER = "rollershutter";
104     public static final String CHANNEL_ANGLE = "angle";
105     public static final String CHANNEL_TEMPERATURE = "temperature";
106     public static final String CHANNEL_HUMIDITY = "humidity";
107     public static final String CHANNEL_CO2 = "co2";
108     public static final String CHANNEL_CO = "co";
109     public static final String CHANNEL_TVOC = "totalVolatileOrganicCompounds";
110     public static final String CHANNEL_VOC = "volatileOrganicCompounds";
111     public static final String CHANNEL_VOC_ID = "volatileOrganicCompoundsId";
112     public static final String CHANNEL_SETPOINT = "setPoint";
113     public static final String CHANNEL_FANSPEEDSTAGE = "fanSpeedStage";
114     public static final String CHANNEL_OCCUPANCY = "occupancy";
115     public static final String CHANNEL_MOTIONDETECTION = "motionDetection";
116     public static final String CHANNEL_VIBRATION = "vibration";
117     public static final String CHANNEL_ILLUMINATION = "illumination";
118     public static final String CHANNEL_ILLUMINATIONWEST = "illuminationWest";
119     public static final String CHANNEL_ILLUMINATIONSOUTHNORTH = "illuminationSouthNorth";
120     public static final String CHANNEL_ILLUMINATIONEAST = "illuminationEast";
121     public static final String CHANNEL_WINDSPEED = "windspeed";
122     public static final String CHANNEL_RAINSTATUS = "rainStatus";
123     public static final String CHANNEL_COUNTER = "counter";
124     public static final String CHANNEL_CURRENTNUMBER = "currentNumber";
125     public static final String CHANNEL_SMOKEDETECTION = "smokeDetection";
126     public static final String CHANNEL_SENSORFAULT = "sensorFault";
127     public static final String CHANNEL_MAINTENANCESTATUS = "maintenanceStatus";
128     public static final String CHANNEL_SENSORANALYSISHUMIDITYRANGE = "saHumidityRange";
129     public static final String CHANNEL_SENSORANALYSISTEMPERATURRANGE = "saTemperatureRange";
130     public static final String CHANNEL_TIMESINCELASTMAINTENANCE = "timeSinceLastMaintenance";
131     public static final String CHANNEL_REMAININGPLT = "remainingPLT";
132     public static final String CHANNEL_HYGROCOMFORTINDEX = "hygroComfortIndex";
133     public static final String CHANNEL_INDOORAIRANALYSIS = "indoorAirAnalysis";
134
135     public static final String CHANNEL_PUSHBUTTON = "pushButton";
136     public static final String CHANNEL_PUSHBUTTON2 = "pushButton2";
137     public static final String CHANNEL_DOUBLEPRESS = "doublePress";
138     public static final String CHANNEL_LONGPRESS = "longPress";
139
140     public static final String CHANNEL_ROCKERSWITCH_CHANNELA = "rockerswitchA";
141     public static final String CHANNEL_ROCKERSWITCH_CHANNELB = "rockerswitchB";
142     public static final String CHANNEL_ROCKERSWITCH_ACTION = "rockerSwitchAction";
143     public static final ChannelTypeUID CHANNELTYPE_ROCKERSWITCH_ACTION_UID = new ChannelTypeUID(BINDING_ID,
144             CHANNEL_ROCKERSWITCH_ACTION);
145
146     public static final String CHANNEL_VIRTUALSWITCHA = "virtualSwitchA";
147     public static final String CHANNEL_VIRTUALROLLERSHUTTERA = "virtualRollershutterA";
148     public static final String CHANNEL_VIRTUALROCKERSWITCHB = "virtualRockerswitchB";
149     public static final String CHANNEL_ROCKERSWITCHLISTENERSWITCH = "rockerswitchListenerSwitch";
150     public static final String CHANNEL_ROCKERSWITCHLISTENERROLLERSHUTTER = "rockerswitchListenerRollershutter";
151     public static final String CHANNEL_ROCKERSWITCHLISTENER_START = "rockerswitchListener";
152
153     public static final String CHANNEL_WINDOWHANDLESTATE = "windowHandleState";
154     public static final String CHANNEL_WINDOWSASHSTATE = "windowSashState";
155     public static final String CHANNEL_WINDOWCALIBRATIONSTATE = "windowCalibrationState";
156     public static final String CHANNEL_WINDOWCALIBRATIONSTEP = "windowCalibrationStep";
157     public static final String CHANNEL_WINDOWBREACHEVENT = "windowBreachEvent";
158     public static final String CHANNEL_PROTECTIONPLUSEVENT = "protectionPlusEvent";
159     public static final String CHANNEL_VACATIONMODETOGGLEEVENT = "vacationModeToggleEvent";
160     public static final String CHANNEL_CONTACT = "contact";
161     public static final String CHANNEL_TEACHINCMD = "teachInCMD";
162     public static final String CHANNEL_INSTANTPOWER = "instantpower";
163     public static final String CHANNEL_TOTALUSAGE = "totalusage";
164     public static final String CHANNEL_CURRENTFLOW = "currentFlow";
165     public static final String CHANNEL_CUMULATIVEVALUE = "cumulativeValue";
166     public static final String CHANNEL_BATTERY_VOLTAGE = "batteryVoltage";
167     public static final String CHANNEL_ENERGY_STORAGE = "energyStorage";
168     public static final String CHANNEL_BATTERY_LEVEL = "batteryLevel";
169     public static final String CHANNEL_BATTERYLOW = "batteryLow";
170
171     public static final String CHANNEL_AUTOOFF = "autoOFF";
172     public static final String CHANNEL_DELAYRADIOOFF = "delayRadioOFF";
173     public static final String CHANNEL_EXTERNALINTERFACEMODE = "externalInterfaceMode";
174     public static final String CHANNEL_TWOSTATESWITCH = "twoStateSwitch";
175     public static final String CHANNEL_ECOMODE = "ecoMode";
176
177     public static final String CHANNEL_RSSI = "rssi";
178     public static final String CHANNEL_REPEATCOUNT = "repeatCount";
179     public static final String CHANNEL_LASTRECEIVED = "lastReceived";
180
181     public static final String CHANNEL_GENERIC_SWITCH = "genericSwitch";
182     public static final String CHANNEL_GENERIC_ROLLERSHUTTER = "genericRollershutter";
183     public static final String CHANNEL_GENERIC_DIMMER = "genericDimmer";
184     public static final String CHANNEL_GENERIC_NUMBER = "genericNumber";
185     public static final String CHANNEL_GENERIC_STRING = "genericString";
186     public static final String CHANNEL_GENERIC_COLOR = "genericColor";
187     public static final String CHANNEL_GENERIC_TEACHINCMD = "genericTeachInCMD";
188
189     public static final String CHANNEL_VALVE_POSITION = "valvePosition";
190     public static final String CHANNEL_BUTTON_LOCK = "buttonLock";
191     public static final String CHANNEL_DISPLAY_ORIENTATION = "displayOrientation";
192     public static final String CHANNEL_TEMPERATURE_SETPOINT = "temperatureSetPoint";
193     public static final String CHANNEL_FEED_TEMPERATURE = "feedTemperature";
194     public static final String CHANNEL_MEASUREMENT_CONTROL = "measurementControl";
195     public static final String CHANNEL_FAILURE_CODE = "failureCode";
196     public static final String CHANNEL_WAKEUPCYCLE = "wakeUpCycle";
197     public static final String CHANNEL_SERVICECOMMAND = "serviceCommand";
198     public static final String CHANNEL_STATUS_REQUEST_EVENT = "statusRequestEvent";
199     public static final String VIRTUALCHANNEL_SEND_COMMAND = "sendCommand";
200
201     public static final String CHANNEL_VENTILATIONOPERATIONMODE = "ventilationOperationMode";
202     public static final String CHANNEL_FIREPLACESAFETYMODE = "fireplaceSafetyMode";
203     public static final String CHANNEL_HEATEXCHANGERBYPASSSTATUS = "heatExchangerBypassStatus";
204     public static final String CHANNEL_SUPPLYAIRFLAPSTATUS = "supplyAirFlapStatus";
205     public static final String CHANNEL_EXHAUSTAIRFLAPSTATUS = "exhaustAirFlapStatus";
206     public static final String CHANNEL_DEFROSTMODE = "defrostMode";
207     public static final String CHANNEL_COOLINGPROTECTIONMODE = "coolingProtectionMode";
208     public static final String CHANNEL_OUTDOORAIRHEATERSTATUS = "outdoorAirHeaterStatus";
209     public static final String CHANNEL_SUPPLYAIRHEATERSTATUS = "supplyAirHeaterStatus";
210     public static final String CHANNEL_DRAINHEATERSTATUS = "drainHeaterStatus";
211     public static final String CHANNEL_TIMEROPERATIONMODE = "timerOperationMode";
212     public static final String CHANNEL_WEEKLYTIMERPROGRAMSTATUS = "weeklyTimerProgramStatus";
213     public static final String CHANNEL_ROOMTEMPERATURECONTROLSTATUS = "roomTemperatureControlStatus";
214     public static final String CHANNEL_AIRQUALITYVALUE1 = "airQualityValue1";
215     public static final String CHANNEL_AIRQUALITYVALUE2 = "airQualityValue2";
216     public static final String CHANNEL_OUTDOORAIRTEMPERATURE = "outdoorAirTemperature";
217     public static final String CHANNEL_SUPPLYAIRTEMPERATURE = "supplyAirTemperature";
218     public static final String CHANNEL_INDOORAIRTEMPERATURE = "indoorAirTemperature";
219     public static final String CHANNEL_EXHAUSTAIRTEMPERATURE = "exhaustAirTemperature";
220     public static final String CHANNEL_SUPPLYAIRFANAIRFLOWRATE = "supplyAirFanAirFlowRate";
221     public static final String CHANNEL_EXHAUSTAIRFANAIRFLOWRATE = "exhaustAirFanAirFlowRate";
222     public static final String CHANNEL_SUPPLYFANSPEED = "supplyFanSpeed";
223     public static final String CHANNEL_EXHAUSTFANSPEED = "exhaustFanSpeed";
224
225     public static final Map<String, EnOceanChannelDescription> CHANNELID2CHANNELDESCRIPTION = Map.ofEntries(
226             Map.entry(CHANNEL_GENERAL_SWITCHING,
227                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERAL_SWITCHING),
228                             CoreItemFactory.SWITCH)),
229
230             Map.entry(CHANNEL_GENERAL_SWITCHINGA,
231                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERAL_SWITCHINGA),
232                             CoreItemFactory.SWITCH)),
233             Map.entry(CHANNEL_GENERAL_SWITCHINGB,
234                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERAL_SWITCHINGB),
235                             CoreItemFactory.SWITCH)),
236
237             Map.entry(CHANNEL_DIMMER,
238                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_DIMMER),
239                             CoreItemFactory.DIMMER)),
240             Map.entry(CHANNEL_ROLLERSHUTTER,
241                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ROLLERSHUTTER),
242                             CoreItemFactory.ROLLERSHUTTER)),
243             Map.entry(CHANNEL_ANGLE,
244                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ANGLE),
245                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Angle.class.getSimpleName())),
246             Map.entry(CHANNEL_TEMPERATURE,
247                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TEMPERATURE),
248                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName())),
249             Map.entry(CHANNEL_HUMIDITY,
250                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_HUMIDITY),
251                             CoreItemFactory.NUMBER)),
252             Map.entry(CHANNEL_CO2,
253                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CO2), CoreItemFactory.NUMBER)),
254             Map.entry(CHANNEL_CO,
255                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CO), CoreItemFactory.NUMBER)),
256             Map.entry(CHANNEL_VOC,
257                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VOC), CoreItemFactory.NUMBER)),
258             Map.entry(CHANNEL_VOC_ID,
259                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VOC_ID),
260                             CoreItemFactory.STRING)),
261             Map.entry(CHANNEL_TVOC,
262                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TVOC),
263                             CoreItemFactory.NUMBER)),
264             Map.entry(CHANNEL_FANSPEEDSTAGE,
265                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_FANSPEEDSTAGE),
266                             CoreItemFactory.STRING)),
267             Map.entry(CHANNEL_OCCUPANCY,
268                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_OCCUPANCY),
269                             CoreItemFactory.SWITCH)),
270             Map.entry(CHANNEL_MOTIONDETECTION,
271                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_MOTION.getUID(),
272                             CoreItemFactory.SWITCH)),
273             Map.entry(CHANNEL_VIBRATION,
274                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VIBRATION),
275                             CoreItemFactory.SWITCH)),
276             Map.entry(CHANNEL_ILLUMINATION,
277                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATION),
278                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName())),
279             Map.entry(CHANNEL_ILLUMINATIONWEST,
280                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATIONWEST),
281                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName())),
282             Map.entry(CHANNEL_ILLUMINATIONSOUTHNORTH,
283                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATIONSOUTHNORTH),
284                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName())),
285             Map.entry(CHANNEL_ILLUMINATIONEAST,
286                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ILLUMINATIONEAST),
287                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Illuminance.class.getSimpleName())),
288             Map.entry(CHANNEL_WINDSPEED,
289                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_WIND_SPEED.getUID(),
290                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Speed.class.getSimpleName())),
291             Map.entry(CHANNEL_RAINSTATUS,
292                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_RAINSTATUS),
293                             CoreItemFactory.SWITCH)),
294             Map.entry(CHANNEL_COUNTER,
295                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_COUNTER),
296                             CoreItemFactory.NUMBER)),
297             Map.entry(CHANNEL_CURRENTNUMBER,
298                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CURRENTNUMBER),
299                             CoreItemFactory.NUMBER)),
300             Map.entry(CHANNEL_SMOKEDETECTION,
301                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SMOKEDETECTION),
302                             CoreItemFactory.SWITCH)),
303             Map.entry(CHANNEL_SENSORFAULT,
304                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SENSORFAULT),
305                             CoreItemFactory.SWITCH)),
306             Map.entry(CHANNEL_MAINTENANCESTATUS,
307                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SENSORFAULT),
308                             CoreItemFactory.SWITCH)),
309             Map.entry(CHANNEL_SENSORANALYSISHUMIDITYRANGE,
310                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SENSORFAULT),
311                             CoreItemFactory.SWITCH)),
312             Map.entry(CHANNEL_SENSORANALYSISTEMPERATURRANGE,
313                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SENSORFAULT),
314                             CoreItemFactory.SWITCH)),
315             Map.entry(CHANNEL_TIMESINCELASTMAINTENANCE,
316                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TIMESINCELASTMAINTENANCE),
317                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Time.class.getSimpleName())),
318             Map.entry(CHANNEL_REMAININGPLT,
319                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_REMAININGPLT),
320                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Time.class.getSimpleName())),
321             Map.entry(CHANNEL_HYGROCOMFORTINDEX,
322                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_HYGROCOMFORTINDEX),
323                             CoreItemFactory.STRING)),
324             Map.entry(CHANNEL_INDOORAIRANALYSIS,
325                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_INDOORAIRANALYSIS),
326                             CoreItemFactory.STRING)),
327             Map.entry(CHANNEL_SETPOINT,
328                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SETPOINT),
329                             CoreItemFactory.NUMBER)),
330             Map.entry(CHANNEL_CONTACT,
331                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CONTACT),
332                             CoreItemFactory.CONTACT)),
333             Map.entry(CHANNEL_WINDOWHANDLESTATE,
334                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_WINDOWHANDLESTATE),
335                             CoreItemFactory.STRING)),
336             Map.entry(CHANNEL_WINDOWSASHSTATE,
337                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_WINDOWSASHSTATE),
338                             CoreItemFactory.STRING)),
339             Map.entry(CHANNEL_WINDOWCALIBRATIONSTATE,
340                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_WINDOWCALIBRATIONSTATE),
341                             CoreItemFactory.STRING)),
342             Map.entry(CHANNEL_WINDOWCALIBRATIONSTEP,
343                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_WINDOWCALIBRATIONSTEP),
344                             CoreItemFactory.STRING)),
345
346             Map.entry(CHANNEL_WINDOWBREACHEVENT,
347                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_WINDOWBREACHEVENT), null, null,
348                             false, true)),
349             Map.entry(CHANNEL_PROTECTIONPLUSEVENT,
350                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_PROTECTIONPLUSEVENT), null,
351                             null, false, true)),
352             Map.entry(CHANNEL_VACATIONMODETOGGLEEVENT,
353                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VACATIONMODETOGGLEEVENT), null,
354                             null, false, true)),
355             Map.entry(
356                     CHANNEL_BATTERY_VOLTAGE,
357                     new EnOceanChannelDescription(
358                             new ChannelTypeUID(BINDING_ID, CHANNEL_BATTERY_VOLTAGE),
359                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
360                                     + ElectricPotential.class.getSimpleName())),
361             Map.entry(CHANNEL_ENERGY_STORAGE,
362                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ENERGY_STORAGE),
363                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
364                                     + ElectricPotential.class.getSimpleName())),
365             Map.entry(CHANNEL_BATTERY_LEVEL, new EnOceanChannelDescription(
366                     DefaultSystemChannelTypeProvider.SYSTEM_CHANNEL_BATTERY_LEVEL.getUID(), CoreItemFactory.NUMBER)),
367             Map.entry(CHANNEL_BATTERYLOW,
368                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_CHANNEL_LOW_BATTERY.getUID(),
369                             CoreItemFactory.SWITCH)),
370             Map.entry(CHANNEL_TEACHINCMD,
371                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TEACHINCMD),
372                             CoreItemFactory.SWITCH)),
373
374             Map.entry(CHANNEL_PUSHBUTTON,
375                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID(), null,
376                             "Push button", false, true)),
377             Map.entry(CHANNEL_PUSHBUTTON2,
378                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID(), null,
379                             "Push button 2", false, true)),
380             Map.entry(CHANNEL_DOUBLEPRESS,
381                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID(), null,
382                             "Double press", false, true)),
383             Map.entry(CHANNEL_LONGPRESS,
384                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID(), null,
385                             "Long press", false, true)),
386
387             Map.entry(CHANNEL_ROCKERSWITCH_CHANNELA,
388                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWROCKER.getUID(), null,
389                             "Rocker Switch - Channel A", false, false)),
390             Map.entry(CHANNEL_ROCKERSWITCH_CHANNELB,
391                     new EnOceanChannelDescription(DefaultSystemChannelTypeProvider.SYSTEM_RAWROCKER.getUID(), null,
392                             "Rocker Switch - Channel B", false, false)),
393             Map.entry(CHANNEL_ROCKERSWITCH_ACTION,
394                     new EnOceanChannelDescription(CHANNELTYPE_ROCKERSWITCH_ACTION_UID, null, "Rocker Switch Action",
395                             false, false)),
396
397             Map.entry(CHANNEL_VIRTUALSWITCHA,
398                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VIRTUALSWITCHA),
399                             CoreItemFactory.SWITCH, "", true, false)),
400             Map.entry(CHANNEL_VIRTUALROLLERSHUTTERA,
401                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VIRTUALROLLERSHUTTERA),
402                             CoreItemFactory.ROLLERSHUTTER, "", true, false)),
403             Map.entry(CHANNEL_VIRTUALROCKERSWITCHB,
404                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VIRTUALROCKERSWITCHB),
405                             CoreItemFactory.STRING, "Rocker Switch - Channel B", true, false)),
406             Map.entry(CHANNEL_ROCKERSWITCHLISTENERSWITCH,
407                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ROCKERSWITCHLISTENERSWITCH),
408                             CoreItemFactory.SWITCH, "Rocker Switch Listener (Switch)", true, false)),
409             Map.entry(CHANNEL_ROCKERSWITCHLISTENERROLLERSHUTTER,
410                     new EnOceanChannelDescription(
411                             new ChannelTypeUID(BINDING_ID, CHANNEL_ROCKERSWITCHLISTENERROLLERSHUTTER),
412                             CoreItemFactory.ROLLERSHUTTER, "Rocker Switch Listener (Rollershutter)", true, false)),
413
414             Map.entry(CHANNEL_INSTANTPOWER,
415                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_INSTANTPOWER),
416                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Power.class.getSimpleName())),
417             Map.entry(CHANNEL_TOTALUSAGE,
418                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TOTALUSAGE),
419                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Energy.class.getSimpleName())),
420             Map.entry(CHANNEL_CURRENTFLOW,
421                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CURRENTFLOW),
422                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
423                                     + VolumetricFlowRate.class.getSimpleName())),
424             Map.entry(CHANNEL_CUMULATIVEVALUE,
425                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CUMULATIVEVALUE),
426                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Volume.class.getSimpleName())),
427             Map.entry(CHANNEL_AUTOOFF,
428                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_AUTOOFF),
429                             CoreItemFactory.NUMBER)),
430             Map.entry(CHANNEL_DELAYRADIOOFF,
431                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_DELAYRADIOOFF),
432                             CoreItemFactory.NUMBER)),
433             Map.entry(CHANNEL_EXTERNALINTERFACEMODE,
434                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_EXTERNALINTERFACEMODE),
435                             CoreItemFactory.STRING)),
436             Map.entry(CHANNEL_TWOSTATESWITCH,
437                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TWOSTATESWITCH),
438                             CoreItemFactory.SWITCH)),
439             Map.entry(CHANNEL_ECOMODE,
440                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ECOMODE),
441                             CoreItemFactory.SWITCH)),
442
443             Map.entry(CHANNEL_RSSI,
444                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_RSSI),
445                             CoreItemFactory.NUMBER)),
446             Map.entry(CHANNEL_REPEATCOUNT,
447                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_REPEATCOUNT),
448                             CoreItemFactory.NUMBER)),
449             Map.entry(CHANNEL_LASTRECEIVED,
450                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_LASTRECEIVED),
451                             CoreItemFactory.DATETIME)),
452
453             Map.entry(CHANNEL_GENERIC_SWITCH,
454                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERIC_SWITCH),
455                             CoreItemFactory.SWITCH)),
456             Map.entry(CHANNEL_GENERIC_ROLLERSHUTTER,
457                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERIC_ROLLERSHUTTER),
458                             CoreItemFactory.ROLLERSHUTTER)),
459             Map.entry(CHANNEL_GENERIC_DIMMER,
460                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERIC_DIMMER),
461                             CoreItemFactory.DIMMER)),
462             Map.entry(CHANNEL_GENERIC_NUMBER,
463                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERIC_NUMBER),
464                             CoreItemFactory.NUMBER)),
465             Map.entry(CHANNEL_GENERIC_STRING,
466                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERIC_STRING),
467                             CoreItemFactory.STRING)),
468             Map.entry(CHANNEL_GENERIC_COLOR,
469                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERIC_COLOR),
470                             CoreItemFactory.COLOR)),
471             Map.entry(CHANNEL_GENERIC_TEACHINCMD,
472                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_GENERIC_TEACHINCMD),
473                             CoreItemFactory.SWITCH)),
474
475             Map.entry(CHANNEL_VALVE_POSITION,
476                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VALVE_POSITION),
477                             CoreItemFactory.NUMBER)),
478             Map.entry(CHANNEL_BUTTON_LOCK,
479                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_BUTTON_LOCK),
480                             CoreItemFactory.SWITCH)),
481             Map.entry(CHANNEL_DISPLAY_ORIENTATION,
482                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_DISPLAY_ORIENTATION),
483                             CoreItemFactory.NUMBER)),
484             Map.entry(CHANNEL_TEMPERATURE_SETPOINT,
485                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TEMPERATURE_SETPOINT),
486                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName())),
487             Map.entry(CHANNEL_FEED_TEMPERATURE,
488                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_FEED_TEMPERATURE),
489                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName())),
490             Map.entry(CHANNEL_MEASUREMENT_CONTROL,
491                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_MEASUREMENT_CONTROL),
492                             CoreItemFactory.SWITCH)),
493             Map.entry(CHANNEL_FAILURE_CODE,
494                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_FAILURE_CODE),
495                             CoreItemFactory.NUMBER)),
496             Map.entry(CHANNEL_WAKEUPCYCLE,
497                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_WAKEUPCYCLE),
498                             CoreItemFactory.NUMBER)),
499             Map.entry(CHANNEL_SERVICECOMMAND,
500                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SERVICECOMMAND),
501                             CoreItemFactory.NUMBER)),
502
503             Map.entry(CHANNEL_VENTILATIONOPERATIONMODE,
504                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_VENTILATIONOPERATIONMODE),
505                             CoreItemFactory.STRING)),
506             Map.entry(CHANNEL_FIREPLACESAFETYMODE,
507                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_FIREPLACESAFETYMODE),
508                             CoreItemFactory.SWITCH)),
509             Map.entry(CHANNEL_HEATEXCHANGERBYPASSSTATUS,
510                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_HEATEXCHANGERBYPASSSTATUS),
511                             CoreItemFactory.CONTACT)),
512             Map.entry(CHANNEL_SUPPLYAIRFLAPSTATUS,
513                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SUPPLYAIRFLAPSTATUS),
514                             CoreItemFactory.CONTACT)),
515             Map.entry(CHANNEL_EXHAUSTAIRFLAPSTATUS,
516                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_EXHAUSTAIRFLAPSTATUS),
517                             CoreItemFactory.CONTACT)),
518             Map.entry(CHANNEL_DEFROSTMODE,
519                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_DEFROSTMODE),
520                             CoreItemFactory.SWITCH)),
521             Map.entry(CHANNEL_COOLINGPROTECTIONMODE,
522                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_COOLINGPROTECTIONMODE),
523                             CoreItemFactory.SWITCH)),
524             Map.entry(CHANNEL_OUTDOORAIRHEATERSTATUS,
525                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_OUTDOORAIRHEATERSTATUS),
526                             CoreItemFactory.SWITCH)),
527             Map.entry(CHANNEL_SUPPLYAIRHEATERSTATUS,
528                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SUPPLYAIRHEATERSTATUS),
529                             CoreItemFactory.SWITCH)),
530             Map.entry(CHANNEL_DRAINHEATERSTATUS,
531                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_DRAINHEATERSTATUS),
532                             CoreItemFactory.SWITCH)),
533             Map.entry(CHANNEL_TIMEROPERATIONMODE,
534                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_TIMEROPERATIONMODE),
535                             CoreItemFactory.SWITCH)),
536             Map.entry(CHANNEL_WEEKLYTIMERPROGRAMSTATUS,
537                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_WEEKLYTIMERPROGRAMSTATUS),
538                             CoreItemFactory.SWITCH)),
539             Map.entry(CHANNEL_ROOMTEMPERATURECONTROLSTATUS,
540                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_ROOMTEMPERATURECONTROLSTATUS),
541                             CoreItemFactory.SWITCH)),
542             Map.entry(CHANNEL_AIRQUALITYVALUE1,
543                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_AIRQUALITYVALUE1),
544                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
545                                     + Dimensionless.class.getSimpleName())),
546             Map.entry(CHANNEL_AIRQUALITYVALUE2,
547                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_AIRQUALITYVALUE2),
548                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
549                                     + Dimensionless.class.getSimpleName())),
550             Map.entry(CHANNEL_OUTDOORAIRTEMPERATURE,
551                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_OUTDOORAIRTEMPERATURE),
552                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName())),
553             Map.entry(CHANNEL_SUPPLYAIRTEMPERATURE,
554                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SUPPLYAIRTEMPERATURE),
555                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName())),
556             Map.entry(CHANNEL_INDOORAIRTEMPERATURE,
557                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_INDOORAIRTEMPERATURE),
558                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName())),
559             Map.entry(CHANNEL_EXHAUSTAIRTEMPERATURE,
560                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_EXHAUSTAIRTEMPERATURE),
561                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Temperature.class.getSimpleName())),
562             Map.entry(CHANNEL_SUPPLYAIRFANAIRFLOWRATE,
563                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SUPPLYAIRFANAIRFLOWRATE),
564                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
565                                     + VolumetricFlowRate.class.getSimpleName())),
566             Map.entry(CHANNEL_EXHAUSTAIRFANAIRFLOWRATE,
567                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_EXHAUSTAIRFANAIRFLOWRATE),
568                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
569                                     + VolumetricFlowRate.class.getSimpleName())),
570             Map.entry(CHANNEL_SUPPLYFANSPEED,
571                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_SUPPLYFANSPEED),
572                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
573                                     + Dimensionless.class.getSimpleName())),
574             Map.entry(CHANNEL_EXHAUSTFANSPEED,
575                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_EXHAUSTFANSPEED),
576                             CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR
577                                     + Dimensionless.class.getSimpleName())),
578
579             Map.entry(CHANNEL_STATUS_REQUEST_EVENT,
580                     new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_STATUS_REQUEST_EVENT), null,
581                             "", false, true)),
582
583             Map.entry(CHANNEL_REPEATERMODE, new EnOceanChannelDescription(
584                     new ChannelTypeUID(BINDING_ID, CHANNEL_REPEATERMODE), CoreItemFactory.STRING)));
585
586     // List of all repeater mode states
587     public static final String REPEATERMODE_OFF = "OFF";
588     public static final String REPEATERMODE_LEVEL_1 = "LEVEL1";
589     public static final String REPEATERMODE_LEVEL_2 = "LEVEL2";
590
591     // Bridge config properties
592     public static final String PATH = "path";
593     public static final String PARAMETER_NEXT_SENDERID = "nextSenderId";
594
595     // Bridge properties
596     public static final String PROPERTY_BASE_ID = "Base ID";
597     public static final String PROPERTY_REMAINING_WRITE_CYCLES_BASE_ID = "Remaining Base ID Write Cycles";
598     public static final String PROPERTY_APP_VERSION = "APP Version";
599     public static final String PROPERTY_API_VERSION = "API Version";
600     public static final String PROPERTY_CHIP_ID = "Chip ID";
601     public static final String PROPERTY_DESCRIPTION = "Description";
602
603     // Thing properties
604     public static final String PROPERTY_SENDINGENOCEAN_ID = "SendingEnoceanId";
605
606     // Thing config parameter
607     public static final String PARAMETER_SENDERIDOFFSET = "senderIdOffset";
608     public static final String PARAMETER_SENDINGEEPID = "sendingEEPId";
609     public static final String PARAMETER_RECEIVINGEEPID = "receivingEEPId";
610
611     public static final String PARAMETER_BROADCASTMESSAGES = "broadcastMessages";
612     public static final String PARAMETER_ENOCEANID = "enoceanId";
613
614     // Channel config parameter
615     public static final String PARAMETER_CHANNEL_TEACHINMSG = "teachInMSG";
616     public static final String PARAMETER_CHANNEL_DURATION = "duration";
617     public static final String PARAMETER_CHANNEL_SWITCHMODE = "switchMode";
618
619     // Manufacturer Ids - used to recognize special EEPs during auto discovery
620     public static final int ELTAKOID = 0x00d;
621     public static final int NODONID = 0x046; // NodOn devices are designed by ID-RF hence use their ID
622     public static final int PERMUNDOID = 0x033;
623
624     public static final String EMPTYENOCEANID = "00000000";
625
626     public static final byte ZERO = (byte) 0;
627 }