]> git.basschouten.com Git - openhab-addons.git/blob
7e0f281cf1d3a9e56b5ab24d64cd7317abaff1a4
[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.openwebnet.internal;
14
15 import java.util.Collection;
16 import java.util.HashSet;
17 import java.util.Set;
18 import java.util.stream.Collectors;
19 import java.util.stream.Stream;
20
21 import org.eclipse.jdt.annotation.NonNullByDefault;
22 import org.openhab.core.thing.ThingTypeUID;
23
24 /**
25  * The {@link OpenWebNetBindingConstants} class defines common constants, which
26  * are used across the whole binding.
27  *
28  * @author Massimo Valla - Initial contribution, updates
29  * @author Gilberto Cocchi - Thermoregulation
30  * @author Andrea Conte - Energy management, Thermoregulation
31  * @author Giovanni Fabiani - Aux support
32  */
33
34 @NonNullByDefault
35 public class OpenWebNetBindingConstants {
36
37     public static final String BINDING_ID = "openwebnet";
38
39     public static final int THING_STATE_REQ_TIMEOUT_SEC = 5;
40
41     // #LIST OF Thing Type UIDs
42     // generic device (used for not identified devices)
43     public static final ThingTypeUID THING_TYPE_GENERIC_DEVICE = new ThingTypeUID(BINDING_ID, "generic_device");
44     public static final String THING_LABEL_GENERIC_DEVICE = "GENERIC Device";
45     // bridges
46     public static final ThingTypeUID THING_TYPE_ZB_GATEWAY = new ThingTypeUID(BINDING_ID, "zb_gateway");
47     public static final String THING_LABEL_ZB_GATEWAY = "Zigbee USB Gateway";
48     public static final ThingTypeUID THING_TYPE_BUS_GATEWAY = new ThingTypeUID(BINDING_ID, "bus_gateway");
49     public static final String THING_LABEL_BUS_GATEWAY = "BUS Gateway";
50     // other thing types
51     // BUS
52     public static final ThingTypeUID THING_TYPE_BUS_ON_OFF_SWITCH = new ThingTypeUID(BINDING_ID, "bus_on_off_switch");
53     public static final String THING_LABEL_BUS_ON_OFF_SWITCH = "Switch";
54     public static final ThingTypeUID THING_TYPE_BUS_DIMMER = new ThingTypeUID(BINDING_ID, "bus_dimmer");
55     public static final String THING_LABEL_BUS_DIMMER = "Dimmer";
56     public static final ThingTypeUID THING_TYPE_BUS_AUTOMATION = new ThingTypeUID(BINDING_ID, "bus_automation");
57     public static final String THING_LABEL_BUS_AUTOMATION = "Automation";
58     public static final ThingTypeUID THING_TYPE_BUS_ENERGY_METER = new ThingTypeUID(BINDING_ID, "bus_energy_meter");
59     public static final String THING_LABEL_BUS_ENERGY_METER = "Energy Meter";
60     public static final ThingTypeUID THING_TYPE_BUS_THERMO_SENSOR = new ThingTypeUID(BINDING_ID, "bus_thermo_sensor");
61     public static final String THING_LABEL_BUS_THERMO_SENSOR = "Thermo Sensor";
62     public static final ThingTypeUID THING_TYPE_BUS_THERMO_ZONE = new ThingTypeUID(BINDING_ID, "bus_thermo_zone");
63     public static final String THING_LABEL_BUS_THERMO_ZONE = "Thermo Zone";
64     public static final ThingTypeUID THING_TYPE_BUS_THERMO_CU = new ThingTypeUID(BINDING_ID, "bus_thermo_cu");
65     public static final String THING_LABEL_BUS_THERMO_CU = "Thermo Central Unit";
66     public static final ThingTypeUID THING_TYPE_BUS_CEN_SCENARIO_CONTROL = new ThingTypeUID(BINDING_ID,
67             "bus_cen_scenario_control");
68     public static final String THING_LABEL_BUS_CEN_SCENARIO_CONTROL = "CEN Scenario Control";
69     public static final ThingTypeUID THING_TYPE_BUS_DRY_CONTACT_IR = new ThingTypeUID(BINDING_ID, "bus_dry_contact_ir");
70     public static final String THING_LABEL_BUS_DRY_CONTACT_IR = "Dry Contact/IR";
71     public static final ThingTypeUID THING_TYPE_BUS_CENPLUS_SCENARIO_CONTROL = new ThingTypeUID(BINDING_ID,
72             "bus_cenplus_scenario_control");
73     public static final String THING_LABEL_BUS_CENPLUS_SCENARIO_CONTROL = "CEN+ Scenario Control";
74     public static final ThingTypeUID THING_TYPE_BUS_SCENARIO = new ThingTypeUID(BINDING_ID, "bus_scenario_control");
75     public static final String THING_LABEL_BUS_SCENARIO = "Scenario Control";
76     public static final ThingTypeUID THING_TYPE_BUS_ALARM_SYSTEM = new ThingTypeUID(BINDING_ID, "bus_alarm_system");
77     public static final String THING_LABEL_BUS_ALARM_SYSTEM = "Alarm System";
78     public static final ThingTypeUID THING_TYPE_BUS_ALARM_ZONE = new ThingTypeUID(BINDING_ID, "bus_alarm_zone");
79     public static final String THING_LABEL_BUS_ALARM_ZONE = "Alarm Zone";
80     public static final ThingTypeUID THING_TYPE_BUS_AUX = new ThingTypeUID(BINDING_ID, "bus_aux");
81     public static final String THING_LABEL_BUS_AUX = "Auxiliary";
82     // ZIGBEE
83     public static final ThingTypeUID THING_TYPE_ZB_ON_OFF_SWITCH = new ThingTypeUID(BINDING_ID, "zb_on_off_switch");
84     public static final String THING_LABEL_ZB_ON_OFF_SWITCH = "Zigbee Switch";
85     public static final ThingTypeUID THING_TYPE_ZB_ON_OFF_SWITCH_2UNITS = new ThingTypeUID(BINDING_ID,
86             "zb_on_off_switch2u");
87     public static final String THING_LABEL_ZB_ON_OFF_SWITCH_2UNITS = "Zigbee 2-units Switch";
88     public static final ThingTypeUID THING_TYPE_ZB_DIMMER = new ThingTypeUID(BINDING_ID, "zb_dimmer");
89     public static final String THING_LABEL_ZB_DIMMER = "Zigbee Dimmer";
90     public static final ThingTypeUID THING_TYPE_ZB_AUTOMATION = new ThingTypeUID(BINDING_ID, "zb_automation");
91     public static final String THING_LABEL_ZB_AUTOMATION = "Zigbee Automation";
92
93     // #SUPPORTED THINGS SETS
94     // ## Generic
95     public static final Set<ThingTypeUID> GENERIC_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_GENERIC_DEVICE);
96     // ## Lighting
97     public static final Set<ThingTypeUID> LIGHTING_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_ZB_ON_OFF_SWITCH,
98             THING_TYPE_ZB_ON_OFF_SWITCH_2UNITS, THING_TYPE_ZB_DIMMER, THING_TYPE_BUS_ON_OFF_SWITCH,
99             THING_TYPE_BUS_DIMMER);
100     // ## Automation
101     public static final Set<ThingTypeUID> AUTOMATION_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_ZB_AUTOMATION,
102             THING_TYPE_BUS_AUTOMATION);
103     // ## Thermoregulation
104     public static final Set<ThingTypeUID> THERMOREGULATION_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_BUS_THERMO_ZONE,
105             THING_TYPE_BUS_THERMO_SENSOR, THING_TYPE_BUS_THERMO_CU);
106     // ## Energy Management
107     public static final Set<ThingTypeUID> ENERGY_MANAGEMENT_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_BUS_ENERGY_METER);
108     // ## CEN/CEN+ Scenario
109     public static final Set<ThingTypeUID> SCENARIO_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_BUS_CEN_SCENARIO_CONTROL,
110             THING_TYPE_BUS_CENPLUS_SCENARIO_CONTROL, THING_TYPE_BUS_DRY_CONTACT_IR);
111     // ## Basic Scenario
112     public static final Set<ThingTypeUID> SCENARIO_BASIC_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_BUS_SCENARIO);
113     // ## Aux
114     public static final Set<ThingTypeUID> AUX_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_BUS_AUX);
115     // ## Alarm
116     public static final Set<ThingTypeUID> ALARM_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_BUS_ALARM_SYSTEM,
117             THING_TYPE_BUS_ALARM_ZONE);
118
119     // ## Groups
120     public static final Set<ThingTypeUID> DEVICE_SUPPORTED_THING_TYPES = Stream
121             .of(LIGHTING_SUPPORTED_THING_TYPES, AUTOMATION_SUPPORTED_THING_TYPES,
122                     THERMOREGULATION_SUPPORTED_THING_TYPES, ENERGY_MANAGEMENT_SUPPORTED_THING_TYPES,
123                     SCENARIO_SUPPORTED_THING_TYPES, SCENARIO_BASIC_SUPPORTED_THING_TYPES, AUX_SUPPORTED_THING_TYPES,
124                     ALARM_SUPPORTED_THING_TYPES, GENERIC_SUPPORTED_THING_TYPES)
125             .flatMap(Collection::stream).collect(Collectors.toCollection(HashSet::new));
126     public static final Set<ThingTypeUID> BRIDGE_SUPPORTED_THING_TYPES = Set.of(THING_TYPE_ZB_GATEWAY,
127             THING_TYPE_BUS_GATEWAY);
128     public static final Set<ThingTypeUID> ALL_SUPPORTED_THING_TYPES = Stream
129             .of(DEVICE_SUPPORTED_THING_TYPES, BRIDGE_SUPPORTED_THING_TYPES).flatMap(Collection::stream)
130             .collect(Collectors.toCollection(HashSet::new));
131
132     // LIST OF ALL CHANNEL IDs
133     // lighting
134     public static final String CHANNEL_SWITCH = "switch";
135     public static final String CHANNEL_SWITCH_01 = "switch_01";
136     public static final String CHANNEL_SWITCH_02 = "switch_02";
137     public static final String CHANNEL_BRIGHTNESS = "brightness";
138     // automation
139     public static final String CHANNEL_SHUTTER = "shutter";
140     // thermo
141     public static final String CHANNEL_TEMPERATURE = "temperature";
142     public static final String CHANNEL_FUNCTION = "function";
143     public static final String CHANNEL_TEMP_SETPOINT = "setpointTemperature";
144     public static final String CHANNEL_MODE = "mode";
145     public static final String CHANNEL_FAN_SPEED = "speedFanCoil";
146     public static final String CHANNEL_CONDITIONING_VALVES = "conditioningValves";
147     public static final String CHANNEL_HEATING_VALVES = "heatingValves";
148     public static final String CHANNEL_ACTUATORS = "actuators";
149     public static final String CHANNEL_LOCAL_OFFSET = "localOffset";
150     public static final String CHANNEL_CU_REMOTE_CONTROL = "remoteControl";
151     public static final String CHANNEL_CU_BATTERY_STATUS = "batteryStatus";
152     public static final String CHANNEL_CU_WEEKLY_PROGRAM_NUMBER = "weeklyProgram";
153     public static final String CHANNEL_CU_SCENARIO_PROGRAM_NUMBER = "scenarioProgram";
154     public static final String CHANNEL_CU_VACATION_DAYS = "vacationDays";
155
156     public static final String CHANNEL_CU_FAILURE_DISCOVERED = "failureDiscovered";
157     public static final String CHANNEL_CU_AT_LEAST_ONE_PROBE_OFF = "atLeastOneProbeOff";
158     public static final String CHANNEL_CU_AT_LEAST_ONE_PROBE_PROTECTION = "atLeastOneProbeProtection";
159     public static final String CHANNEL_CU_AT_LEAST_ONE_PROBE_MANUAL = "atLeastOneProbeManual";
160     // energy management
161     public static final String CHANNEL_POWER = "power";
162     public static final String CHANNEL_ENERGY_TOTALIZER_DAY = "energyToday";
163     public static final String CHANNEL_ENERGY_TOTALIZER_MONTH = "energyThisMonth";
164     // scenario button channels
165     public static final String CHANNEL_SCENARIO_BUTTON = "button#";
166     public static final String CHANNEL_TYPE_CEN_BUTTON_EVENT = "cenButtonEvent";
167     public static final String CHANNEL_TYPE_CEN_PLUS_BUTTON_EVENT = "cenPlusButtonEvent";
168     public static final String CHANNEL_DRY_CONTACT_IR = "sensor";
169     // basic scenario
170     public static final String CHANNEL_SCENARIO = "scenario";
171     // aux
172     public static final String CHANNEL_AUX = "aux";
173     // alarm
174     public static final String CHANNEL_ALARM_SYSTEM_STATE = "state";
175     public static final String CHANNEL_ALARM_SYSTEM_ARMED = "armed";
176     public static final String CHANNEL_ALARM_SYSTEM_NETWORK = "network";
177     public static final String CHANNEL_ALARM_SYSTEM_BATTERY = "battery";
178     public static final String CHANNEL_ALARM_ZONE_STATE = "state";
179     public static final String CHANNEL_ALARM_ZONE_ALARM = "alarm";
180     public static final String CHANNEL_ALARM_ZONE_ALARM_TIMESTAMP = "timestamp";
181
182     // devices config properties
183     public static final String CONFIG_PROPERTY_WHERE = "where";
184     public static final String CONFIG_PROPERTY_SHUTTER_RUN = "shutterRun";
185     public static final String CONFIG_PROPERTY_SCENARIO_BUTTONS = "buttons";
186     public static final String CONFIG_PROPERTY_STANDALONE = "standAlone";
187     public static final String CONFIG_PROPERTY_REFRESH_PERIOD = "energyRefreshPeriod";
188
189     // gw config properties
190     public static final String CONFIG_PROPERTY_HOST = "host";
191     public static final String CONFIG_PROPERTY_SERIAL_PORT = "serialPort";
192     // properties
193     public static final String PROPERTY_OWNID = "ownId";
194     public static final String PROPERTY_ZIGBEEID = "zigbeeid";
195     public static final String PROPERTY_FIRMWARE_VERSION = "firmwareVersion";
196     public static final String PROPERTY_MODEL = "model";
197     public static final String PROPERTY_SERIAL_NO = "serialNumber";
198 }