]> git.basschouten.com Git - openhab-addons.git/blob
6b07e12d2448a25bbb4cea7c50d8e126ebd43059
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 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_DECT302 = "FRITZ_DECT_302";
47     public static final String DEVICE_DECT301 = "FRITZ_DECT_301";
48     public static final String DEVICE_DECT300 = "FRITZ_DECT_300";
49     public static final String DEVICE_DECT210 = "FRITZ_DECT_210";
50     public static final String DEVICE_DECT200 = "FRITZ_DECT_200";
51     public static final String DEVICE_DECT100 = "FRITZ_DECT_Repeater_100";
52     public static final String DEVICE_POWERLINE546E = "FRITZ_Powerline_546E";
53     public static final String DEVICE_POWERLINE546E_STANDALONE = "FRITZ_Powerline_546E_Solo";
54     public static final String DEVICE_COMETDECT = "Comet_DECT";
55     public static final String DEVICE_HAN_FUN_CONTACT = "HAN_FUN_CONTACT";
56     public static final String DEVICE_HAN_FUN_SWITCH = "HAN_FUN_SWITCH";
57     public static final String DEVICE_HAN_FUN_ON_OFF = "HAN_FUN_ON_OFF";
58     public static final String DEVICE_HAN_FUN_BLINDS = "HAN_FUN_BLINDS";
59     public static final String DEVICE_HAN_FUN_COLOR_BULB = "HAN_FUN_COLOR_BULB";
60     public static final String DEVICE_HAN_FUN_DIMMABLE_BULB = "HAN_FUN_DIMMABLE_BULB";
61
62     // List of main group types
63     public static final String GROUP_HEATING = "FRITZ_GROUP_HEATING";
64     public static final String GROUP_SWITCH = "FRITZ_GROUP_SWITCH";
65
66     // List of all Thing Type UIDs
67     public static final ThingTypeUID BRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, BRIDGE_FRITZBOX);
68     public static final ThingTypeUID DECT500_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT500);
69     public static final ThingTypeUID DECT400_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT400);
70     public static final ThingTypeUID DECT440_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT440);
71     public static final ThingTypeUID DECT302_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT302);
72     public static final ThingTypeUID DECT301_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT301);
73     public static final ThingTypeUID DECT300_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT300);
74     public static final ThingTypeUID DECT210_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT210);
75     public static final ThingTypeUID DECT200_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT200);
76     public static final ThingTypeUID DECT100_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT100);
77     public static final ThingTypeUID POWERLINE546E_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_POWERLINE546E);
78     public static final ThingTypeUID POWERLINE546E_STANDALONE_THING_TYPE = new ThingTypeUID(BINDING_ID,
79             DEVICE_POWERLINE546E_STANDALONE);
80     public static final ThingTypeUID COMETDECT_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_COMETDECT);
81     public static final ThingTypeUID HAN_FUN_CONTACT_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_CONTACT);
82     public static final ThingTypeUID HAN_FUN_SWITCH_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_SWITCH);
83     public static final ThingTypeUID HAN_FUN_ON_OFF_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_ON_OFF);
84     public static final ThingTypeUID HAN_FUN_BLINDS_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_BLINDS);
85     public static final ThingTypeUID HAN_FUN_COLOR_BULB_THING_TYPE = new ThingTypeUID(BINDING_ID,
86             DEVICE_HAN_FUN_COLOR_BULB);
87     public static final ThingTypeUID HAN_FUN_DIMMABLE_BULB_THING_TYPE = new ThingTypeUID(BINDING_ID,
88             DEVICE_HAN_FUN_DIMMABLE_BULB);
89     public static final ThingTypeUID GROUP_HEATING_THING_TYPE = new ThingTypeUID(BINDING_ID, GROUP_HEATING);
90     public static final ThingTypeUID GROUP_SWITCH_THING_TYPE = new ThingTypeUID(BINDING_ID, GROUP_SWITCH);
91
92     // List of all Thing config ids
93     public static final String CONFIG_IP_ADDRESS = "ipAddress";
94     public static final String CONFIG_PROTOCOL = "protocol";
95     public static final String CONFIG_USER = "user";
96     public static final String CONFIG_PASSWORD = "password";
97     public static final String CONFIG_POLLING_INTERVAL = "pollingInterval";
98     public static final String CONFIG_SYNC_TIMEOUT = "syncTimeout";
99     public static final String CONFIG_AIN = "ain";
100
101     // List of all Properties
102     public static final String PROPERTY_MASTER = "master";
103     public static final String PROPERTY_MEMBERS = "members";
104     public static final String PRODUCT_NAME = "productName";
105
106     // List of all channel groups
107     public static final String CHANNEL_GROUP_DEVICE = "device";
108     public static final String CHANNEL_GROUP_SENSORS = "sensors";
109     public static final String CHANNEL_GROUP_TOP_LEFT = "top-left";
110     public static final String CHANNEL_GROUP_BOTTOM_LEFT = "bottom-left";
111     public static final String CHANNEL_GROUP_TOP_RIGHT = "top-right";
112     public static final String CHANNEL_GROUP_BOTTOM_RIGHT = "bottom-right";
113
114     // List of all Channel ids
115     public static final String CHANNEL_CALL_INCOMING = "incoming_call";
116     public static final String CHANNEL_CALL_OUTGOING = "outgoing_call";
117     public static final String CHANNEL_CALL_ACTIVE = "active_call";
118     public static final String CHANNEL_CALL_STATE = "call_state";
119
120     public static final String CHANNEL_MODE = "mode";
121     public static final String CHANNEL_LOCKED = "locked";
122     public static final String CHANNEL_DEVICE_LOCKED = "device_locked";
123     public static final String CHANNEL_APPLY_TEMPLATE = "apply_template";
124     public static final String CHANNEL_TEMPERATURE = "temperature";
125     public static final String CHANNEL_HUMIDITY = "humidity";
126     public static final String CHANNEL_ENERGY = "energy";
127     public static final String CHANNEL_POWER = "power";
128     public static final String CHANNEL_VOLTAGE = "voltage";
129     public static final String CHANNEL_OUTLET = "outlet";
130     public static final String CHANNEL_ACTUALTEMP = "actual_temp";
131     public static final String CHANNEL_SETTEMP = "set_temp";
132     public static final String CHANNEL_ECOTEMP = "eco_temp";
133     public static final String CHANNEL_COMFORTTEMP = "comfort_temp";
134     public static final String CHANNEL_RADIATOR_MODE = "radiator_mode";
135     public static final String CHANNEL_NEXT_CHANGE = "next_change";
136     public static final String CHANNEL_NEXTTEMP = "next_temp";
137     public static final String CHANNEL_BATTERY_LOW = "battery_low";
138     public static final String CHANNEL_BATTERY = "battery_level";
139     public static final String CHANNEL_OBSTRUCTION_ALARM = "obstruction_alarm";
140     public static final String CHANNEL_TEMPERATURE_ALARM = "temperature_alarm";
141     public static final String CHANNEL_CONTACT_STATE = "contact_state";
142     public static final String CHANNEL_PRESS = "press";
143     public static final String CHANNEL_LAST_CHANGE = "last_change";
144     public static final String CHANNEL_ROLLERSHUTTER = "rollershutter";
145     public static final String CHANNEL_COLOR = "color";
146     public static final String CHANNEL_BRIGHTNESS = "brightness";
147     public static final String CHANNEL_ON_OFF = "on_off";
148
149     // List of all Channel config ids
150     public static final String CONFIG_CHANNEL_TEMP_OFFSET = "offset";
151
152     // List of all Input tags
153     public static final String INPUT_PRESENT = "present";
154     public static final String INPUT_ACTUALTEMP = "tist";
155     public static final String INPUT_SETTEMP = "tsoll";
156     public static final String INPUT_ECOTEMP = "absenk";
157     public static final String INPUT_COMFORTTEMP = "komfort";
158     public static final String INPUT_NEXTCHANGE = "endperiod";
159     public static final String INPUT_NEXTTEMP = "tchange";
160     public static final String INPUT_BATTERY = "batterylow";
161
162     // List of all call states
163     public static final StringType CALL_STATE_IDLE = new StringType("IDLE");
164     public static final StringType CALL_STATE_RINGING = new StringType("RINGING");
165     public static final StringType CALL_STATE_DIALING = new StringType("DIALING");
166     public static final StringType CALL_STATE_ACTIVE = new StringType("ACTIVE");
167
168     // List of all Mode types
169     public static final String MODE_AUTO = "AUTOMATIC";
170     public static final String MODE_MANUAL = "MANUAL";
171     public static final String MODE_VACATION = "VACATION";
172     public static final String MODE_ON = "ON";
173     public static final String MODE_OFF = "OFF";
174     public static final String MODE_COMFORT = "COMFORT";
175     public static final String MODE_ECO = "ECO";
176     public static final String MODE_BOOST = "BOOST";
177     public static final String MODE_WINDOW_OPEN = "WINDOW_OPEN";
178     public static final String MODE_UNKNOWN = "UNKNOWN";
179
180     public static final Set<ThingTypeUID> SUPPORTED_LIGHTING_THING_TYPES = Set.of(DECT500_THING_TYPE,
181             HAN_FUN_COLOR_BULB_THING_TYPE, HAN_FUN_DIMMABLE_BULB_THING_TYPE);
182
183     public static final Set<ThingTypeUID> SUPPORTED_BUTTON_THING_TYPES_UIDS = Set.of(DECT400_THING_TYPE,
184             DECT440_THING_TYPE, HAN_FUN_SWITCH_THING_TYPE);
185
186     public static final Set<ThingTypeUID> SUPPORTED_HEATING_THING_TYPES = Set.of(DECT300_THING_TYPE, DECT302_THING_TYPE,
187             DECT301_THING_TYPE, COMETDECT_THING_TYPE);
188
189     public static final Set<ThingTypeUID> SUPPORTED_DEVICE_THING_TYPES_UIDS = Set.of(DECT100_THING_TYPE,
190             DECT200_THING_TYPE, DECT210_THING_TYPE, POWERLINE546E_THING_TYPE, HAN_FUN_CONTACT_THING_TYPE,
191             HAN_FUN_ON_OFF_THING_TYPE, HAN_FUN_BLINDS_THING_TYPE);
192
193     public static final Set<ThingTypeUID> SUPPORTED_GROUP_THING_TYPES_UIDS = Set.of(GROUP_HEATING_THING_TYPE,
194             GROUP_SWITCH_THING_TYPE);
195
196     public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_THING_TYPES_UIDS = Set.of(BRIDGE_THING_TYPE,
197             POWERLINE546E_STANDALONE_THING_TYPE);
198
199     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Stream.of(SUPPORTED_LIGHTING_THING_TYPES,
200             SUPPORTED_BUTTON_THING_TYPES_UIDS, SUPPORTED_HEATING_THING_TYPES, SUPPORTED_DEVICE_THING_TYPES_UIDS,
201             SUPPORTED_GROUP_THING_TYPES_UIDS, SUPPORTED_BRIDGE_THING_TYPES_UIDS).flatMap(Set::stream)
202             .collect(Collectors.toUnmodifiableSet());
203 }