]> git.basschouten.com Git - openhab-addons.git/blob
c9c7354e652305beed7846136f890d238577504a
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2021 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.avmfritz.internal;
14
15 import java.util.Set;
16 import java.util.stream.Collectors;
17 import java.util.stream.Stream;
18
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.openhab.core.library.types.StringType;
21 import org.openhab.core.thing.ThingTypeUID;
22
23 /**
24  * This class defines common constants, which are used across the whole binding.
25  *
26  * @author Robert Bausdorf - Initial contribution
27  * @author Christoph Weitkamp - Added support for AVM FRITZ!DECT 300 and Comet DECT
28  * @author Christoph Weitkamp - Added support for groups
29  * @author Christoph Weitkamp - Added channels 'voltage' and 'battery_level'
30  * @author Ulrich Mertin - Added support for HAN-FUN blinds
31  */
32 @NonNullByDefault
33 public class AVMFritzBindingConstants {
34
35     public static final String INVALID_PATTERN = "[^a-zA-Z0-9_]";
36
37     public static final String BINDING_ID = "avmfritz";
38     public static final String BRIDGE_FRITZBOX = "fritzbox";
39     public static final String BOX_MODEL_NAME = "FRITZ!Box";
40     public static final String POWERLINE546E_MODEL_NAME = "FRITZ!Powerline 546E";
41
42     // List of main device types
43     public static final String DEVICE_DECT500 = "FRITZ_DECT_500";
44     public static final String DEVICE_DECT400 = "FRITZ_DECT_400";
45     public static final String DEVICE_DECT440 = "FRITZ_DECT_440";
46     public static final String DEVICE_DECT301 = "FRITZ_DECT_301";
47     public static final String DEVICE_DECT300 = "FRITZ_DECT_300";
48     public static final String DEVICE_DECT210 = "FRITZ_DECT_210";
49     public static final String DEVICE_DECT200 = "FRITZ_DECT_200";
50     public static final String DEVICE_DECT100 = "FRITZ_DECT_Repeater_100";
51     public static final String DEVICE_POWERLINE546E = "FRITZ_Powerline_546E";
52     public static final String DEVICE_POWERLINE546E_STANDALONE = "FRITZ_Powerline_546E_Solo";
53     public static final String DEVICE_COMETDECT = "Comet_DECT";
54     public static final String DEVICE_HAN_FUN_CONTACT = "HAN_FUN_CONTACT";
55     public static final String DEVICE_HAN_FUN_SWITCH = "HAN_FUN_SWITCH";
56     public static final String DEVICE_HAN_FUN_ON_OFF = "HAN_FUN_ON_OFF";
57     public static final String DEVICE_HAN_FUN_BLINDS = "HAN_FUN_BLINDS";
58
59     // List of main group types
60     public static final String GROUP_HEATING = "FRITZ_GROUP_HEATING";
61     public static final String GROUP_SWITCH = "FRITZ_GROUP_SWITCH";
62
63     // List of all Thing Type UIDs
64     public static final ThingTypeUID BRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, BRIDGE_FRITZBOX);
65     public static final ThingTypeUID DECT500_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT500);
66     public static final ThingTypeUID DECT400_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT400);
67     public static final ThingTypeUID DECT440_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT440);
68     public static final ThingTypeUID DECT301_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT301);
69     public static final ThingTypeUID DECT300_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT300);
70     public static final ThingTypeUID DECT210_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT210);
71     public static final ThingTypeUID DECT200_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT200);
72     public static final ThingTypeUID DECT100_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT100);
73     public static final ThingTypeUID POWERLINE546E_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_POWERLINE546E);
74     public static final ThingTypeUID POWERLINE546E_STANDALONE_THING_TYPE = new ThingTypeUID(BINDING_ID,
75             DEVICE_POWERLINE546E_STANDALONE);
76     public static final ThingTypeUID COMETDECT_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_COMETDECT);
77     public static final ThingTypeUID HAN_FUN_CONTACT_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_CONTACT);
78     public static final ThingTypeUID HAN_FUN_SWITCH_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_SWITCH);
79     public static final ThingTypeUID HAN_FUN_ON_OFF_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_ON_OFF);
80     public static final ThingTypeUID HAN_FUN_BLINDS_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_BLINDS);
81     public static final ThingTypeUID GROUP_HEATING_THING_TYPE = new ThingTypeUID(BINDING_ID, GROUP_HEATING);
82     public static final ThingTypeUID GROUP_SWITCH_THING_TYPE = new ThingTypeUID(BINDING_ID, GROUP_SWITCH);
83
84     // List of all Thing config ids
85     public static final String CONFIG_IP_ADDRESS = "ipAddress";
86     public static final String CONFIG_PROTOCOL = "protocol";
87     public static final String CONFIG_USER = "user";
88     public static final String CONFIG_PASSWORD = "password";
89     public static final String CONFIG_POLLING_INTERVAL = "pollingInterval";
90     public static final String CONFIG_SYNC_TIMEOUT = "syncTimeout";
91     public static final String CONFIG_AIN = "ain";
92
93     // List of all Properties
94     public static final String PROPERTY_MASTER = "master";
95     public static final String PROPERTY_MEMBERS = "members";
96     public static final String PRODUCT_NAME = "productName";
97
98     // List of all channel groups
99     public static final String CHANNEL_GROUP_DEVICE = "device";
100     public static final String CHANNEL_GROUP_SENSORS = "sensors";
101     public static final String CHANNEL_GROUP_TOP_LEFT = "top-left";
102     public static final String CHANNEL_GROUP_BOTTOM_LEFT = "bottom-left";
103     public static final String CHANNEL_GROUP_TOP_RIGHT = "top-right";
104     public static final String CHANNEL_GROUP_BOTTOM_RIGHT = "bottom-right";
105
106     // List of all Channel ids
107     public static final String CHANNEL_CALL_INCOMING = "incoming_call";
108     public static final String CHANNEL_CALL_OUTGOING = "outgoing_call";
109     public static final String CHANNEL_CALL_ACTIVE = "active_call";
110     public static final String CHANNEL_CALL_STATE = "call_state";
111
112     public static final String CHANNEL_MODE = "mode";
113     public static final String CHANNEL_LOCKED = "locked";
114     public static final String CHANNEL_DEVICE_LOCKED = "device_locked";
115     public static final String CHANNEL_APPLY_TEMPLATE = "apply_template";
116     public static final String CHANNEL_TEMPERATURE = "temperature";
117     public static final String CHANNEL_HUMIDITY = "humidity";
118     public static final String CHANNEL_ENERGY = "energy";
119     public static final String CHANNEL_POWER = "power";
120     public static final String CHANNEL_VOLTAGE = "voltage";
121     public static final String CHANNEL_OUTLET = "outlet";
122     public static final String CHANNEL_ACTUALTEMP = "actual_temp";
123     public static final String CHANNEL_SETTEMP = "set_temp";
124     public static final String CHANNEL_ECOTEMP = "eco_temp";
125     public static final String CHANNEL_COMFORTTEMP = "comfort_temp";
126     public static final String CHANNEL_RADIATOR_MODE = "radiator_mode";
127     public static final String CHANNEL_NEXT_CHANGE = "next_change";
128     public static final String CHANNEL_NEXTTEMP = "next_temp";
129     public static final String CHANNEL_BATTERY_LOW = "battery_low";
130     public static final String CHANNEL_BATTERY = "battery_level";
131     public static final String CHANNEL_CONTACT_STATE = "contact_state";
132     public static final String CHANNEL_PRESS = "press";
133     public static final String CHANNEL_LAST_CHANGE = "last_change";
134     public static final String CHANNEL_ROLLERSHUTTER = "rollershutter";
135     public static final String CHANNEL_ON_OFF = "on_off";
136     public static final String CHANNEL_COLOR = "color";
137     public static final String CHANNEL_BRIGHTNESS = "brightness";
138
139     // List of all Channel config ids
140     public static final String CONFIG_CHANNEL_TEMP_OFFSET = "offset";
141
142     // List of all Input tags
143     public static final String INPUT_PRESENT = "present";
144     public static final String INPUT_ACTUALTEMP = "tist";
145     public static final String INPUT_SETTEMP = "tsoll";
146     public static final String INPUT_ECOTEMP = "absenk";
147     public static final String INPUT_COMFORTTEMP = "komfort";
148     public static final String INPUT_NEXTCHANGE = "endperiod";
149     public static final String INPUT_NEXTTEMP = "tchange";
150     public static final String INPUT_BATTERY = "batterylow";
151
152     // List of all call states
153     public static final StringType CALL_STATE_IDLE = new StringType("IDLE");
154     public static final StringType CALL_STATE_RINGING = new StringType("RINGING");
155     public static final StringType CALL_STATE_DIALING = new StringType("DIALING");
156     public static final StringType CALL_STATE_ACTIVE = new StringType("ACTIVE");
157
158     // List of all Mode types
159     public static final String MODE_AUTO = "AUTOMATIC";
160     public static final String MODE_MANUAL = "MANUAL";
161     public static final String MODE_VACATION = "VACATION";
162     public static final String MODE_ON = "ON";
163     public static final String MODE_OFF = "OFF";
164     public static final String MODE_COMFORT = "COMFORT";
165     public static final String MODE_ECO = "ECO";
166     public static final String MODE_BOOST = "BOOST";
167     public static final String MODE_WINDOW_OPEN = "WINDOW_OPEN";
168     public static final String MODE_UNKNOWN = "UNKNOWN";
169
170     public static final Set<ThingTypeUID> SUPPORTED_LIGHTING_THING_TYPES = Set.of(DECT500_THING_TYPE);
171
172     public static final Set<ThingTypeUID> SUPPORTED_BUTTON_THING_TYPES_UIDS = Set.of(DECT400_THING_TYPE,
173             DECT440_THING_TYPE, HAN_FUN_SWITCH_THING_TYPE);
174
175     public static final Set<ThingTypeUID> SUPPORTED_HEATING_THING_TYPES = Set.of(DECT300_THING_TYPE, DECT301_THING_TYPE,
176             COMETDECT_THING_TYPE);
177
178     public static final Set<ThingTypeUID> SUPPORTED_DEVICE_THING_TYPES_UIDS = Set.of(DECT100_THING_TYPE,
179             DECT200_THING_TYPE, DECT210_THING_TYPE, POWERLINE546E_THING_TYPE, HAN_FUN_CONTACT_THING_TYPE,
180             HAN_FUN_ON_OFF_THING_TYPE, HAN_FUN_BLINDS_THING_TYPE);
181
182     public static final Set<ThingTypeUID> SUPPORTED_GROUP_THING_TYPES_UIDS = Set.of(GROUP_HEATING_THING_TYPE,
183             GROUP_SWITCH_THING_TYPE);
184
185     public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_THING_TYPES_UIDS = Set.of(BRIDGE_THING_TYPE,
186             POWERLINE546E_STANDALONE_THING_TYPE);
187
188     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Stream.of(SUPPORTED_LIGHTING_THING_TYPES,
189             SUPPORTED_BUTTON_THING_TYPES_UIDS, SUPPORTED_HEATING_THING_TYPES, SUPPORTED_DEVICE_THING_TYPES_UIDS,
190             SUPPORTED_GROUP_THING_TYPES_UIDS, SUPPORTED_BRIDGE_THING_TYPES_UIDS).flatMap(Set::stream)
191             .collect(Collectors.toUnmodifiableSet());
192 }