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