2 * Copyright (c) 2010-2023 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.dscalarm.internal;
15 import java.util.Collections;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.core.thing.ThingTypeUID;
24 * The DSCAlarmBinding class defines common constants, which are used across the whole binding.
26 * @author Russell Stephens - Initial contribution
29 public class DSCAlarmBindingConstants {
32 public static final String BINDING_ID = "dscalarm";
34 // List of bridge device types
35 public static final String ENVISALINK_BRIDGE = "envisalink";
36 public static final String IT100_BRIDGE = "it100";
37 public static final String TCPSERVER_BRIDGE = "tcpserver";
39 // List of DSC Alarm device types
40 public static final String PANEL = "panel";
41 public static final String PARTITION = "partition";
42 public static final String ZONE = "zone";
43 public static final String KEYPAD = "keypad";
45 // List of all Bridge Thing Type UIDs
46 public static final ThingTypeUID ENVISALINKBRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, ENVISALINK_BRIDGE);
47 public static final ThingTypeUID IT100BRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, IT100_BRIDGE);
48 public static final ThingTypeUID TCPSERVERBRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, TCPSERVER_BRIDGE);
50 // List of all DSC Alarm Thing Type UIDs
51 public static final ThingTypeUID PANEL_THING_TYPE = new ThingTypeUID(BINDING_ID, PANEL);
52 public static final ThingTypeUID PARTITION_THING_TYPE = new ThingTypeUID(BINDING_ID, PARTITION);
53 public static final ThingTypeUID ZONE_THING_TYPE = new ThingTypeUID(BINDING_ID, ZONE);
54 public static final ThingTypeUID KEYPAD_THING_TYPE = new ThingTypeUID(BINDING_ID, KEYPAD);
56 // List of all Channel IDs
57 public static final String BRIDGE_RESET = "bridge_reset";
58 public static final String SEND_COMMAND = "send_command";
60 public static final String PANEL_MESSAGE = "panel_message";
61 public static final String PANEL_COMMAND = "panel_command";
62 public static final String PANEL_SYSTEM_ERROR = "panel_system_error";
64 public static final String PANEL_TROUBLE_MESSAGE = "panel_trouble_message";
65 public static final String PANEL_TROUBLE_LED = "panel_trouble_led";
66 public static final String PANEL_SERVICE_REQUIRED = "panel_service_required";
67 public static final String PANEL_AC_TROUBLE = "panel_ac_trouble";
68 public static final String PANEL_TELEPHONE_TROUBLE = "panel_telephone_trouble";
69 public static final String PANEL_FTC_TROUBLE = "panel_ftc_trouble";
70 public static final String PANEL_ZONE_FAULT = "panel_zone_fault";
71 public static final String PANEL_ZONE_TAMPER = "panel_zone_tamper";
72 public static final String PANEL_ZONE_LOW_BATTERY = "panel_zone_low_battery";
73 public static final String PANEL_TIME_LOSS = "panel_time_loss";
75 public static final String PANEL_TIME = "panel_time";
76 public static final String PANEL_TIME_STAMP = "panel_time_stamp";
77 public static final String PANEL_TIME_BROADCAST = "panel_time_broadcast";
78 public static final String PANEL_FIRE_KEY_ALARM = "panel_fire_key_alarm";
79 public static final String PANEL_PANIC_KEY_ALARM = "panel_panic_key_alarm";
80 public static final String PANEL_AUX_KEY_ALARM = "panel_aux_key_alarm";
81 public static final String PANEL_AUX_INPUT_ALARM = "panel_aux_input_alarm";
83 public static final String PARTITION_STATUS = "partition_status";
84 public static final String PARTITION_ARM_MODE = "partition_arm_mode";
85 public static final String PARTITION_ARMED = "partition_armed";
86 public static final String PARTITION_ENTRY_DELAY = "partition_entry_delay";
87 public static final String PARTITION_EXIT_DELAY = "partition_exit_delay";
88 public static final String PARTITION_IN_ALARM = "partition_in_alarm";
89 public static final String PARTITION_OPENING_CLOSING_MODE = "partition_opening_closing_mode";
91 public static final String ZONE_STATUS = "zone_status";
92 public static final String ZONE_MESSAGE = "zone_message";
93 public static final String ZONE_BYPASS_MODE = "zone_bypass_mode";
94 public static final String ZONE_IN_ALARM = "zone_in_alarm";
95 public static final String ZONE_TAMPER = "zone_tamper";
96 public static final String ZONE_FAULT = "zone_fault";
97 public static final String ZONE_TRIPPED = "zone_tripped";
99 public static final String KEYPAD_READY_LED = "keypad_ready_led";
100 public static final String KEYPAD_ARMED_LED = "keypad_armed_led";
101 public static final String KEYPAD_MEMORY_LED = "keypad_memory_led";
102 public static final String KEYPAD_BYPASS_LED = "keypad_bypass_led";
103 public static final String KEYPAD_TROUBLE_LED = "keypad_trouble_led";
104 public static final String KEYPAD_PROGRAM_LED = "keypad_program_led";
105 public static final String KEYPAD_FIRE_LED = "keypad_fire_led";
106 public static final String KEYPAD_BACKLIGHT_LED = "keypad_backlight_led";
107 public static final String KEYPAD_AC_LED = "keypad_ac_led";
108 public static final String KEYPAD_LCD_UPDATE = "keypad_lcd_update";
109 public static final String KEYPAD_LCD_CURSOR = "keypad_lcd_cursor";
111 // Set of all supported Thing Type UIDs
112 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
113 .unmodifiableSet(Stream
114 .of(ENVISALINKBRIDGE_THING_TYPE, IT100BRIDGE_THING_TYPE, TCPSERVERBRIDGE_THING_TYPE,
115 PANEL_THING_TYPE, PARTITION_THING_TYPE, ZONE_THING_TYPE, KEYPAD_THING_TYPE)
116 .collect(Collectors.toSet()));
118 // Set of all supported Bridge Type UIDs
119 public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_THING_TYPES_UIDS = Collections
120 .unmodifiableSet(Stream.of(ENVISALINKBRIDGE_THING_TYPE, IT100BRIDGE_THING_TYPE, TCPSERVERBRIDGE_THING_TYPE)
121 .collect(Collectors.toSet()));