Skip to content

Commit bd2dcba

Browse files
Rosen01nagisalsiepel
authored
[velbus] New functionality and bug fix (openhab#15661)
* [velbus] New functionnality & Bug fix Signed-off-by: Daniel Rosengarten <[email protected]> Co-authored-by: Simonas Kazlauskas <[email protected]> Co-authored-by: lsiepel <[email protected]>
1 parent bc13652 commit bd2dcba

36 files changed

+4008
-321
lines changed

bundles/org.openhab.binding.velbus/README.md

+129-81
Large diffs are not rendered by default.

bundles/org.openhab.binding.velbus/src/main/java/org/openhab/binding/velbus/internal/VelbusBindingConstants.java

+108-23
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,22 @@ public class VelbusBindingConstants {
8484
public static final ThingTypeUID THING_TYPE_VMBKP = new ThingTypeUID(BINDING_ID, "vmbkp");
8585
public static final ThingTypeUID THING_TYPE_VMBIN = new ThingTypeUID(BINDING_ID, "vmbin");
8686
public static final ThingTypeUID THING_TYPE_VMB4PB = new ThingTypeUID(BINDING_ID, "vmb4pb");
87+
public static final ThingTypeUID THING_TYPE_VMBDALI = new ThingTypeUID(BINDING_ID, "vmbdali");
88+
public static final ThingTypeUID THING_TYPE_VMB4RYLD_10 = new ThingTypeUID(BINDING_ID, "vmb4ryld-10");
89+
public static final ThingTypeUID THING_TYPE_VMB4RYNO_10 = new ThingTypeUID(BINDING_ID, "vmb4ryno-10");
90+
public static final ThingTypeUID THING_TYPE_VMB2BLE_10 = new ThingTypeUID(BINDING_ID, "vmb2ble-10");
91+
public static final ThingTypeUID THING_TYPE_VMB6PB_20 = new ThingTypeUID(BINDING_ID, "vmb6pb-20");
92+
public static final ThingTypeUID THING_TYPE_VMBEL1_20 = new ThingTypeUID(BINDING_ID, "vmbel1-20");
93+
public static final ThingTypeUID THING_TYPE_VMBEL2_20 = new ThingTypeUID(BINDING_ID, "vmbel2-20");
94+
public static final ThingTypeUID THING_TYPE_VMBEL4_20 = new ThingTypeUID(BINDING_ID, "vmbel4-20");
95+
public static final ThingTypeUID THING_TYPE_VMBELO_20 = new ThingTypeUID(BINDING_ID, "vmbelo-20");
96+
public static final ThingTypeUID THING_TYPE_VMBGP1_20 = new ThingTypeUID(BINDING_ID, "vmbgp1-20");
97+
public static final ThingTypeUID THING_TYPE_VMBGP2_20 = new ThingTypeUID(BINDING_ID, "vmbgp2-20");
98+
public static final ThingTypeUID THING_TYPE_VMBGP4_20 = new ThingTypeUID(BINDING_ID, "vmbgp4-20");
99+
public static final ThingTypeUID THING_TYPE_VMBGPO_20 = new ThingTypeUID(BINDING_ID, "vmbgpo-20");
100+
public static final ThingTypeUID THING_TYPE_VMBDALI_20 = new ThingTypeUID(BINDING_ID, "vmbdali-20");
101+
public static final ThingTypeUID THING_TYPE_VMBEL4PIR_20 = new ThingTypeUID(BINDING_ID, "vmbel4pir-20");
102+
public static final ThingTypeUID THING_TYPE_VMBGP4PIR_20 = new ThingTypeUID(BINDING_ID, "vmbgp4pir-20");
87103

88104
// thing type sets
89105
public static final Set<ThingTypeUID> BRIDGE_THING_TYPES_UIDS = Set.of(BRIDGE_THING_TYPE,
@@ -98,7 +114,11 @@ public class VelbusBindingConstants {
98114
THING_TYPE_VMBGP1_2, THING_TYPE_VMBGP2, THING_TYPE_VMBGP2_2, THING_TYPE_VMBGP4, THING_TYPE_VMBGP4_2,
99115
THING_TYPE_VMBGP4PIR, THING_TYPE_VMBGP4PIR_2, THING_TYPE_VMBGPO, THING_TYPE_VMBGPOD, THING_TYPE_VMBGPOD_2,
100116
THING_TYPE_VMBMETEO, THING_TYPE_VMBPIRC, THING_TYPE_VMBPIRM, THING_TYPE_VMBPIRO, THING_TYPE_VMBRFR8S,
101-
THING_TYPE_VMBVP1, THING_TYPE_VMBKP, THING_TYPE_VMBIN, THING_TYPE_VMB4PB);
117+
THING_TYPE_VMBVP1, THING_TYPE_VMBKP, THING_TYPE_VMBIN, THING_TYPE_VMB4PB, THING_TYPE_VMBDALI,
118+
THING_TYPE_VMB4RYLD_10, THING_TYPE_VMB4RYNO_10, THING_TYPE_VMB2BLE_10, THING_TYPE_VMB6PB_20,
119+
THING_TYPE_VMBEL1_20, THING_TYPE_VMBEL2_20, THING_TYPE_VMBEL4_20, THING_TYPE_VMBELO_20,
120+
THING_TYPE_VMBGP1_20, THING_TYPE_VMBGP2_20, THING_TYPE_VMBGP4_20, THING_TYPE_VMBGPO_20,
121+
THING_TYPE_VMBDALI_20, THING_TYPE_VMBEL4PIR_20, THING_TYPE_VMBGP4PIR_20);
102122

103123
// Velbus module types
104124
public static final byte MODULE_TYPE_VMB8PB = 0x01;
@@ -114,6 +134,7 @@ public class VelbusBindingConstants {
114134
public static final byte MODULE_TYPE_VMB4RYLD = 0x10;
115135
public static final byte MODULE_TYPE_VMB4RYNO = 0x11;
116136
public static final byte MODULE_TYPE_VMB4DC = 0x12;
137+
public static final byte MODULE_TYPE_VMBLCDWB = 0x13;
117138
public static final byte MODULE_TYPE_VMBDME = 0x14;
118139
public static final byte MODULE_TYPE_VMBDMI = 0x15;
119140
public static final byte MODULE_TYPE_VMB8PBU = 0x16;
@@ -152,6 +173,22 @@ public class VelbusBindingConstants {
152173
public static final byte MODULE_TYPE_VMBKP = 0x42;
153174
public static final byte MODULE_TYPE_VMBIN = 0x43;
154175
public static final byte MODULE_TYPE_VMB4PB = 0x44;
176+
public static final byte MODULE_TYPE_VMBDALI = 0x45;
177+
public static final byte MODULE_TYPE_VMB4RYLD_10 = 0x48;
178+
public static final byte MODULE_TYPE_VMB4RYNO_10 = 0x49;
179+
public static final byte MODULE_TYPE_VMB2BLE_10 = 0x4A;
180+
public static final byte MODULE_TYPE_VMB6PB_20 = 0x4C;
181+
public static final byte MODULE_TYPE_VMBEL1_20 = 0x4F;
182+
public static final byte MODULE_TYPE_VMBEL2_20 = 0x50;
183+
public static final byte MODULE_TYPE_VMBEL4_20 = 0x51;
184+
public static final byte MODULE_TYPE_VMBELO_20 = 0x52;
185+
public static final byte MODULE_TYPE_VMBGP1_20 = 0x54;
186+
public static final byte MODULE_TYPE_VMBGP2_20 = 0x55;
187+
public static final byte MODULE_TYPE_VMBGP4_20 = 0x56;
188+
public static final byte MODULE_TYPE_VMBGPO_20 = 0x57;
189+
public static final byte MODULE_TYPE_VMBDALI_20 = 0x5A;
190+
public static final byte MODULE_TYPE_VMBEL4PIR_20 = 0x5C;
191+
public static final byte MODULE_TYPE_VMBGP4PIR_20 = 0x5F;
155192

156193
// Velbus commands
157194
public static final byte COMMAND_PUSH_BUTTON_STATUS = 0x00;
@@ -161,11 +198,24 @@ public class VelbusBindingConstants {
161198
public static final byte COMMAND_BLIND_UP = 0x05;
162199
public static final byte COMMAND_BLIND_DOWN = 0x06;
163200
public static final byte COMMAND_SET_VALUE = 0x07;
201+
public static final byte COMMAND_SET_DIMVALUE = 0x07;
164202
public static final byte COMMAND_SLIDER_STATUS = 0x0F;
165203
public static final byte COMMAND_RESTORE_LAST_DIMVALUE = 0x11;
204+
public static final byte COMMAND_FORCED_OFF = 0x12;
205+
public static final byte COMMAND_CANCEL_FORCED_OFF = 0x13;
206+
public static final byte COMMAND_FORCED_ON = 0x14;
207+
public static final byte COMMAND_CANCEL_FORCED_ON = 0x15;
208+
public static final byte COMMAND_INHIBIT = 0x16;
209+
public static final byte COMMAND_CANCEL_INHIBIT = 0x17;
166210
public static final byte COMMAND_BLIND_POS = 0x1C;
211+
public static final byte COMMAND_SET_DIMSCENE = (byte) 0x1D;
212+
public static final byte COMMAND_SET_COLOR = (byte) 0x1E;
213+
public static final byte COMMAND_DIMVALUE_STATUS = (byte) 0xA5;
214+
public static final byte COMMAND_SUBTYPE_3 = (byte) 0xA6;
215+
public static final byte COMMAND_SUBTYPE_2 = (byte) 0xA7;
167216
public static final byte COMMAND_SENSOR_RAW_DATA = (byte) 0xA9;
168217
public static final byte COMMAND_LIGHT_VALUE_REQUEST = (byte) 0xAA;
218+
public static final byte COMMAND_POWER_UP = (byte) 0xAB;
169219
public static final byte COMMAND_TEXT = (byte) 0xAC;
170220
public static final byte COMMAND_DAYLIGHT_SAVING_STATUS = (byte) 0xAF;
171221
public static final byte COMMAND_SUBTYPE = (byte) 0xB0;
@@ -210,7 +260,14 @@ public class VelbusBindingConstants {
210260
public static final byte COMMAND_READ_DATA_FROM_MEMORY = (byte) 0xFD;
211261
public static final byte COMMAND_MEMORY_DATA = (byte) 0xFE;
212262
public static final byte COMMAND_MODULE_TYPE = (byte) 0xFF;
263+
264+
// Useful values
213265
public static final byte ALL_CHANNELS = (byte) 0xFF;
266+
public static final byte ALL_DALI_CHANNELS = (byte) 0x51;
267+
public static final byte SUB_ADDRESS_DISABLED = (byte) 0xFF;
268+
public static final byte VALUE_UNCHANGED = (byte) 0xFF;
269+
public static final byte DALI_SETTING_ACTUAL_LEVEL = (byte) 0x1A;
270+
public static final byte DALI_MAX_VALUE = (byte) 0xFE;
214271

215272
// Module properties
216273
public static final String PORT = "port";
@@ -226,32 +283,60 @@ public class VelbusBindingConstants {
226283
public static final String MODULE_MEMORY_MAP_VERSION = "memory map version";
227284
public static final String MODULE_BUILD = "build";
228285
public static final String CHANNEL = "CH";
286+
public static final String DALI_ADDRESS = "A";
287+
public static final String VIRTUAL_LIGHT = "VL";
229288
public static final String SUB_ADDRESS = "subaddress";
230289
public static final String DIMSPEED = "dimspeed";
231290

291+
// Channel group ids
292+
public static final String CHANNEL_GROUP_BRIDGE_CLOCK_ALARM = "bridgeClockAlarm";
293+
public static final String CHANNEL_GROUP_MODULE_CLOCK_ALARM = "clockAlarm";
294+
public static final String CHANNEL_GROUP_INPUT = "input";
295+
public static final String CHANNEL_GROUP_FEEDBACK = "feedback";
296+
public static final String CHANNEL_GROUP_BUTTON = "button";
297+
public static final String CHANNEL_GROUP_OUTPUT = "output";
298+
public static final String CHANNEL_GROUP_THERMOSTAT = "thermostat";
299+
public static final String CHANNEL_GROUP_COLOR = "color";
300+
public static final String CHANNEL_GROUP_BRIGHTNESS = "brightness";
301+
public static final String CHANNEL_GROUP_WHITE = "white";
302+
public static final String CHANNEL_GROUP_SCENE = "scene";
303+
public static final String CHANNEL_GROUP_VIRTUAL_LIGHT = "virtual-light";
304+
232305
// Channels ids
233-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_ENABLED = "bridgeClockAlarm#clockAlarm1Enabled";
234-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_WAKEUP_HOUR = "bridgeClockAlarm#clockAlarm1WakeupHour";
235-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_WAKEUP_MINUTE = "bridgeClockAlarm#clockAlarm1WakeupMinute";
236-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_BEDTIME_HOUR = "bridgeClockAlarm#clockAlarm1BedtimeHour";
237-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_BEDTIME_MINUTE = "bridgeClockAlarm#clockAlarm1BedtimeMinute";
238-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_ENABLED = "bridgeClockAlarm#clockAlarm2Enabled";
239-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_WAKEUP_HOUR = "bridgeClockAlarm#clockAlarm2WakeupHour";
240-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_WAKEUP_MINUTE = "bridgeClockAlarm#clockAlarm2WakeupMinute";
241-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_BEDTIME_HOUR = "bridgeClockAlarm#clockAlarm2BedtimeHour";
242-
public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_BEDTIME_MINUTE = "bridgeClockAlarm#clockAlarm2BedtimeMinute";
243-
public static final String CHANNEL_MODULE_CLOCK_ALARM1_ENABLED = "clockAlarm#clockAlarm1Enabled";
244-
public static final String CHANNEL_MODULE_CLOCK_ALARM1_TYPE = "clockAlarm#clockAlarm1Type";
245-
public static final String CHANNEL_MODULE_CLOCK_ALARM1_WAKEUP_HOUR = "clockAlarm#clockAlarm1WakeupHour";
246-
public static final String CHANNEL_MODULE_CLOCK_ALARM1_WAKEUP_MINUTE = "clockAlarm#clockAlarm1WakeupMinute";
247-
public static final String CHANNEL_MODULE_CLOCK_ALARM1_BEDTIME_HOUR = "clockAlarm#clockAlarm1BedtimeHour";
248-
public static final String CHANNEL_MODULE_CLOCK_ALARM1_BEDTIME_MINUTE = "clockAlarm#clockAlarm1BedtimeMinute";
249-
public static final String CHANNEL_MODULE_CLOCK_ALARM2_ENABLED = "clockAlarm#clockAlarm2Enabled";
250-
public static final String CHANNEL_MODULE_CLOCK_ALARM2_TYPE = "clockAlarm#clockAlarm2Type";
251-
public static final String CHANNEL_MODULE_CLOCK_ALARM2_WAKEUP_HOUR = "clockAlarm#clockAlarm2WakeupHour";
252-
public static final String CHANNEL_MODULE_CLOCK_ALARM2_WAKEUP_MINUTE = "clockAlarm#clockAlarm2WakeupMinute";
253-
public static final String CHANNEL_MODULE_CLOCK_ALARM2_BEDTIME_HOUR = "clockAlarm#clockAlarm2BedtimeHour";
254-
public static final String CHANNEL_MODULE_CLOCK_ALARM2_BEDTIME_MINUTE = "clockAlarm#clockAlarm2BedtimeMinute";
306+
public static final String CHANNEL_CLOCK_ALARM1_TYPE = "clockAlarm1Type";
307+
public static final String CHANNEL_CLOCK_ALARM1_ENABLED = "clockAlarm1Enabled";
308+
public static final String CHANNEL_CLOCK_ALARM1_WAKEUP_HOUR = "clockAlarm1WakeupHour";
309+
public static final String CHANNEL_CLOCK_ALARM1_WAKEUP_MINUTE = "clockAlarm1WakeupMinute";
310+
public static final String CHANNEL_CLOCK_ALARM1_BEDTIME_HOUR = "clockAlarm1BedtimeHour";
311+
public static final String CHANNEL_CLOCK_ALARM1_BEDTIME_MINUTE = "clockAlarm1BedtimeMinute";
312+
public static final String CHANNEL_CLOCK_ALARM2_TYPE = "clockAlarm2Type";
313+
public static final String CHANNEL_CLOCK_ALARM2_ENABLED = "clockAlarm2Enabled";
314+
public static final String CHANNEL_CLOCK_ALARM2_WAKEUP_HOUR = "clockAlarm2WakeupHour";
315+
public static final String CHANNEL_CLOCK_ALARM2_WAKEUP_MINUTE = "clockAlarm2WakeupMinute";
316+
public static final String CHANNEL_CLOCK_ALARM2_BEDTIME_HOUR = "clockAlarm2BedtimeHour";
317+
public static final String CHANNEL_CLOCK_ALARM2_BEDTIME_MINUTE = "clockAlarm2BedtimeMinute";
318+
319+
public static final String CHANNEL_THERMOSTAT_CURRENT_TEMPERATURE = "currentTemperatureSetpoint";
320+
public static final String CHANNEL_THERMOSTAT_HEATING_COMFORT = "heatingModeComfortTemperatureSetpoint";
321+
public static final String CHANNEL_THERMOSTAT_HEATING_DAY = "heatingModeDayTemperatureSetpoint";
322+
public static final String CHANNEL_THERMOSTAT_HEATING_NIGHT = "heatingModeNightTemperatureSetpoint";
323+
public static final String CHANNEL_THERMOSTAT_HEATING_ANTI_FROST = "heatingModeAntiFrostTemperatureSetpoint";
324+
public static final String CHANNEL_THERMOSTAT_COOLING_COMFORT = "coolingModeComfortTemperatureSetpoint";
325+
public static final String CHANNEL_THERMOSTAT_COOLING_DAY = "coolingModeDayTemperatureSetpoint";
326+
public static final String CHANNEL_THERMOSTAT_COOLING_NIGHT = "coolingModeNightTemperatureSetpoint";
327+
public static final String CHANNEL_THERMOSTAT_COOLING_SAFE = "coolingModeSafeTemperatureSetpoint";
328+
public static final String CHANNEL_THERMOSTAT_OPERATING_MODE = "operatingMode";
329+
public static final String CHANNEL_THERMOSTAT_MODE = "mode";
330+
public static final String CHANNEL_THERMOSTAT_HEATER = "heater";
331+
public static final String CHANNEL_THERMOSTAT_BOOST = "boost";
332+
public static final String CHANNEL_THERMOSTAT_PUMP = "pump";
333+
public static final String CHANNEL_THERMOSTAT_COOLER = "cooler";
334+
public static final String CHANNEL_THERMOSTAT_ALARM1 = "alarm1";
335+
public static final String CHANNEL_THERMOSTAT_ALARM2 = "alarm2";
336+
public static final String CHANNEL_THERMOSTAT_ALARM3 = "alarm3";
337+
public static final String CHANNEL_THERMOSTAT_ALARM4 = "alarm4";
338+
339+
public static final String CHANNEL_OUTPUT = "output";
255340

256341
// Delay
257342
public static final Integer DELAY_SEND_CLOCK_ALARM_UPDATE = 10000;

0 commit comments

Comments
 (0)