]> git.basschouten.com Git - openhab-addons.git/blob
526bb8ddc3f0a072734182951f0fbabbaf0801c0
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 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.insteon.internal;
14
15 import java.io.File;
16 import java.util.Map;
17 import java.util.Set;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.openhab.binding.insteon.internal.device.feature.FeatureEnums.VenstarSystemMode;
21 import org.openhab.core.OpenHAB;
22 import org.openhab.core.thing.ThingTypeUID;
23
24 /**
25  * The {@link InsteonBindingConstants} class defines common constants, which are
26  * used across the whole binding.
27  *
28  * @author Rob Nielsen - Initial contribution
29  * @author Jeremy Setton - Rewrite insteon binding
30  */
31 @NonNullByDefault
32 public class InsteonBindingConstants {
33     public static final String BINDING_ID = "insteon";
34     public static final String BINDING_DATA_DIR = OpenHAB.getUserDataFolder() + File.separator + BINDING_ID;
35
36     // List of all thing type uids
37     public static final ThingTypeUID THING_TYPE_DEVICE = new ThingTypeUID(BINDING_ID, "device");
38     public static final ThingTypeUID THING_TYPE_HUB1 = new ThingTypeUID(BINDING_ID, "hub1");
39     public static final ThingTypeUID THING_TYPE_HUB2 = new ThingTypeUID(BINDING_ID, "hub2");
40     public static final ThingTypeUID THING_TYPE_PLM = new ThingTypeUID(BINDING_ID, "plm");
41     public static final ThingTypeUID THING_TYPE_SCENE = new ThingTypeUID(BINDING_ID, "scene");
42     public static final ThingTypeUID THING_TYPE_X10 = new ThingTypeUID(BINDING_ID, "x10");
43     public static final ThingTypeUID THING_TYPE_LEGACY_DEVICE = new ThingTypeUID(BINDING_ID, "legacy-device");
44     public static final ThingTypeUID THING_TYPE_LEGACY_NETWORK = new ThingTypeUID(BINDING_ID, "network");
45
46     public static final Set<ThingTypeUID> DISCOVERABLE_THING_TYPES_UIDS = Set.of(THING_TYPE_DEVICE, THING_TYPE_SCENE);
47     public static final Set<ThingTypeUID> DISCOVERABLE_LEGACY_THING_TYPES_UIDS = Set.of(THING_TYPE_LEGACY_DEVICE);
48
49     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_DEVICE, THING_TYPE_HUB1,
50             THING_TYPE_HUB2, THING_TYPE_PLM, THING_TYPE_SCENE, THING_TYPE_X10, THING_TYPE_LEGACY_DEVICE,
51             THING_TYPE_LEGACY_NETWORK);
52
53     // List of all thing properties
54     public static final String PROPERTY_DEVICE_ADDRESS = "address";
55     public static final String PROPERTY_DEVICE_TYPE = "deviceType";
56     public static final String PROPERTY_ENGINE_VERSION = "engineVersion";
57     public static final String PROPERTY_PRODUCT_ID = "productId";
58     public static final String PROPERTY_SCENE_GROUP = "group";
59
60     // List of all channel parameters
61     public static final String PARAMETER_GROUP = "group";
62     public static final String PARAMETER_ON_LEVEL = "onLevel";
63     public static final String PARAMETER_RAMP_RATE = "rampRate";
64
65     // List of specific device feature names
66     public static final String FEATURE_DATABASE_DELTA = "databaseDelta";
67     public static final String FEATURE_HEARTBEAT = "heartbeat";
68     public static final String FEATURE_HEARTBEAT_INTERVAL = "heartbeatInterval";
69     public static final String FEATURE_HEARTBEAT_ON_OFF = "heartbeatOnOff";
70     public static final String FEATURE_INSTEON_ENGINE = "insteonEngine";
71     public static final String FEATURE_LED_CONTROL = "ledControl";
72     public static final String FEATURE_LED_ON_OFF = "ledOnOff";
73     public static final String FEATURE_LINK_FF_GROUP = "linkFFGroup";
74     public static final String FEATURE_LOW_BATTERY_THRESHOLD = "lowBatteryThreshold";
75     public static final String FEATURE_ON_LEVEL = "onLevel";
76     public static final String FEATURE_PING = "ping";
77     public static final String FEATURE_RAMP_RATE = "rampRate";
78     public static final String FEATURE_SCENE_ON_OFF = "sceneOnOff";
79     public static final String FEATURE_STAY_AWAKE = "stayAwake";
80     public static final String FEATURE_SYSTEM_MODE = "systemMode";
81     public static final String FEATURE_TEMPERATURE_SCALE = "temperatureScale";
82     public static final String FEATURE_TWO_GROUPS = "2Groups";
83
84     // List of specific device feature types
85     public static final String FEATURE_TYPE_FANLINC_FAN = "FanLincFan";
86     public static final String FEATURE_TYPE_GENERIC_DIMMER = "GenericDimmer";
87     public static final String FEATURE_TYPE_GENERIC_SWITCH = "GenericSwitch";
88     public static final String FEATURE_TYPE_KEYPAD_BUTTON = "KeypadButton";
89     public static final String FEATURE_TYPE_KEYPAD_BUTTON_OFF_MASK = "KeypadButtonOffMask";
90     public static final String FEATURE_TYPE_KEYPAD_BUTTON_ON_MASK = "KeypadButtonOnMask";
91     public static final String FEATURE_TYPE_KEYPAD_BUTTON_TOGGLE_MODE = "KeypadButtonToggleMode";
92     public static final String FEATURE_TYPE_OUTLET_SWITCH = "OutletSwitch";
93     public static final String FEATURE_TYPE_THERMOSTAT_FAN_MODE = "ThermostatFanMode";
94     public static final String FEATURE_TYPE_THERMOSTAT_SYSTEM_MODE = "ThermostatSystemMode";
95     public static final String FEATURE_TYPE_THERMOSTAT_COOL_SETPOINT = "ThermostatCoolSetpoint";
96     public static final String FEATURE_TYPE_THERMOSTAT_HEAT_SETPOINT = "ThermostatHeatSetpoint";
97     public static final String FEATURE_TYPE_VENSTAR_FAN_MODE = "VenstarFanMode";
98     public static final String FEATURE_TYPE_VENSTAR_SYSTEM_MODE = "VenstarSystemMode";
99     public static final String FEATURE_TYPE_VENSTAR_COOL_SETPOINT = "VenstarCoolSetpoint";
100     public static final String FEATURE_TYPE_VENSTAR_HEAT_SETPOINT = "VenstarHeatSetpoint";
101
102     // List of specific device types
103     public static final String DEVICE_TYPE_CLIMATE_CONTROL_VENSTAR_THERMOSTAT = "ClimateControl_VenstarThermostat";
104
105     // Map of custom state description options
106     public static final Map<String, String[]> CUSTOM_STATE_DESCRIPTION_OPTIONS = Map.ofEntries(
107             // Venstar Thermostat System Mode
108             Map.entry(DEVICE_TYPE_CLIMATE_CONTROL_VENSTAR_THERMOSTAT + ":" + FEATURE_SYSTEM_MODE,
109                     VenstarSystemMode.names().toArray(String[]::new)));
110 }