2 * Copyright (c) 2010-2021 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
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
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.avmfritz.internal;
15 import java.util.Collections;
17 import java.util.stream.Collectors;
18 import java.util.stream.Stream;
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.core.library.types.StringType;
22 import org.openhab.core.thing.ThingTypeUID;
25 * This class defines common constants, which are used across the whole binding.
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
34 public class AVMFritzBindingConstants {
36 public static final String INVALID_PATTERN = "[^a-zA-Z0-9_]";
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";
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_ON_OFF = "HAN_FUN_ON_OFF";
57 public static final String DEVICE_HAN_FUN_BLINDS = "HAN_FUN_BLINDS";
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";
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 DECT400_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT400);
66 public static final ThingTypeUID DECT440_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT440);
67 public static final ThingTypeUID DECT301_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT301);
68 public static final ThingTypeUID DECT300_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT300);
69 public static final ThingTypeUID DECT210_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT210);
70 public static final ThingTypeUID DECT200_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT200);
71 public static final ThingTypeUID DECT100_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_DECT100);
72 public static final ThingTypeUID PL546E_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_PL546E);
73 public static final ThingTypeUID PL546E_STANDALONE_THING_TYPE = new ThingTypeUID(BINDING_ID,
74 DEVICE_PL546E_STANDALONE);
75 public static final ThingTypeUID COMETDECT_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_COMETDECT);
76 public static final ThingTypeUID HAN_FUN_CONTACT_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_CONTACT);
77 public static final ThingTypeUID HAN_FUN_SWITCH_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_SWITCH);
78 public static final ThingTypeUID HAN_FUN_ON_OFF_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_ON_OFF);
79 public static final ThingTypeUID HAN_FUN_BLINDS_THING_TYPE = new ThingTypeUID(BINDING_ID, DEVICE_HAN_FUN_BLINDS);
80 public static final ThingTypeUID GROUP_HEATING_THING_TYPE = new ThingTypeUID(BINDING_ID, GROUP_HEATING);
81 public static final ThingTypeUID GROUP_SWITCH_THING_TYPE = new ThingTypeUID(BINDING_ID, GROUP_SWITCH);
83 // List of all Thing config ids
84 public static final String CONFIG_IP_ADDRESS = "ipAddress";
85 public static final String CONFIG_PROTOCOL = "protocol";
86 public static final String CONFIG_USER = "user";
87 public static final String CONFIG_PASSWORD = "password";
88 public static final String CONFIG_POLLING_INTERVAL = "pollingInterval";
89 public static final String CONFIG_SYNC_TIMEOUT = "syncTimeout";
90 public static final String CONFIG_AIN = "ain";
92 // List of all Properties
93 public static final String PROPERTY_MASTER = "master";
94 public static final String PROPERTY_MEMBERS = "members";
95 public static final String PRODUCT_NAME = "productName";
97 // List of all channel groups
98 public static final String CHANNEL_GROUP_DEVICE = "device";
99 public static final String CHANNEL_GROUP_SENSORS = "sensors";
100 public static final String CHANNEL_GROUP_TOP_LEFT = "top-left";
101 public static final String CHANNEL_GROUP_BOTTOM_LEFT = "bottom-left";
102 public static final String CHANNEL_GROUP_TOP_RIGHT = "top-right";
103 public static final String CHANNEL_GROUP_BOTTOM_RIGHT = "bottom-right";
105 // List of all Channel ids
106 public static final String CHANNEL_CALL_INCOMING = "incoming_call";
107 public static final String CHANNEL_CALL_OUTGOING = "outgoing_call";
108 public static final String CHANNEL_CALL_ACTIVE = "active_call";
109 public static final String CHANNEL_CALL_STATE = "call_state";
111 public static final String CHANNEL_MODE = "mode";
112 public static final String CHANNEL_LOCKED = "locked";
113 public static final String CHANNEL_DEVICE_LOCKED = "device_locked";
114 public static final String CHANNEL_APPLY_TEMPLATE = "apply_template";
115 public static final String CHANNEL_TEMPERATURE = "temperature";
116 public static final String CHANNEL_HUMIDITY = "humidity";
117 public static final String CHANNEL_ENERGY = "energy";
118 public static final String CHANNEL_POWER = "power";
119 public static final String CHANNEL_VOLTAGE = "voltage";
120 public static final String CHANNEL_OUTLET = "outlet";
121 public static final String CHANNEL_ACTUALTEMP = "actual_temp";
122 public static final String CHANNEL_SETTEMP = "set_temp";
123 public static final String CHANNEL_ECOTEMP = "eco_temp";
124 public static final String CHANNEL_COMFORTTEMP = "comfort_temp";
125 public static final String CHANNEL_RADIATOR_MODE = "radiator_mode";
126 public static final String CHANNEL_NEXT_CHANGE = "next_change";
127 public static final String CHANNEL_NEXTTEMP = "next_temp";
128 public static final String CHANNEL_BATTERY_LOW = "battery_low";
129 public static final String CHANNEL_BATTERY = "battery_level";
130 public static final String CHANNEL_CONTACT_STATE = "contact_state";
131 public static final String CHANNEL_PRESS = "press";
132 public static final String CHANNEL_LAST_CHANGE = "last_change";
133 public static final String CHANNEL_ROLLERSHUTTER = "rollershutter";
134 public static final String CHANNEL_ON_OFF = "on_off";
136 // List of all Channel config ids
137 public static final String CONFIG_CHANNEL_TEMP_OFFSET = "offset";
139 // List of all Input tags
140 public static final String INPUT_PRESENT = "present";
141 public static final String INPUT_ACTUALTEMP = "tist";
142 public static final String INPUT_SETTEMP = "tsoll";
143 public static final String INPUT_ECOTEMP = "absenk";
144 public static final String INPUT_COMFORTTEMP = "komfort";
145 public static final String INPUT_NEXTCHANGE = "endperiod";
146 public static final String INPUT_NEXTTEMP = "tchange";
147 public static final String INPUT_BATTERY = "batterylow";
149 // List of all call states
150 public static final StringType CALL_STATE_IDLE = new StringType("IDLE");
151 public static final StringType CALL_STATE_RINGING = new StringType("RINGING");
152 public static final StringType CALL_STATE_DIALING = new StringType("DIALING");
153 public static final StringType CALL_STATE_ACTIVE = new StringType("ACTIVE");
155 // List of all Mode types
156 public static final String MODE_AUTO = "AUTOMATIC";
157 public static final String MODE_MANUAL = "MANUAL";
158 public static final String MODE_VACATION = "VACATION";
159 public static final String MODE_ON = "ON";
160 public static final String MODE_OFF = "OFF";
161 public static final String MODE_COMFORT = "COMFORT";
162 public static final String MODE_ECO = "ECO";
163 public static final String MODE_BOOST = "BOOST";
164 public static final String MODE_WINDOW_OPEN = "WINDOW_OPEN";
165 public static final String MODE_UNKNOWN = "UNKNOWN";
167 public static final Set<ThingTypeUID> SUPPORTED_BUTTON_THING_TYPES_UIDS = Set.of(DECT400_THING_TYPE,
168 DECT440_THING_TYPE, HAN_FUN_SWITCH_THING_TYPE);
170 public static final Set<ThingTypeUID> SUPPORTED_HEATING_THING_TYPES = Set.of(DECT300_THING_TYPE, DECT301_THING_TYPE,
171 COMETDECT_THING_TYPE);
173 public static final Set<ThingTypeUID> SUPPORTED_DEVICE_THING_TYPES_UIDS = Set.of(DECT100_THING_TYPE,
174 DECT200_THING_TYPE, DECT210_THING_TYPE, PL546E_THING_TYPE, HAN_FUN_CONTACT_THING_TYPE,
175 HAN_FUN_ON_OFF_THING_TYPE, HAN_FUN_BLINDS_THING_TYPE);
177 public static final Set<ThingTypeUID> SUPPORTED_GROUP_THING_TYPES_UIDS = Set.of(GROUP_HEATING_THING_TYPE,
178 GROUP_SWITCH_THING_TYPE);
180 public static final Set<ThingTypeUID> SUPPORTED_BRIDGE_THING_TYPES_UIDS = Set.of(BRIDGE_THING_TYPE,
181 PL546E_STANDALONE_THING_TYPE);
183 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(Stream
184 .of(SUPPORTED_BUTTON_THING_TYPES_UIDS, SUPPORTED_HEATING_THING_TYPES, SUPPORTED_DEVICE_THING_TYPES_UIDS,
185 SUPPORTED_GROUP_THING_TYPES_UIDS, SUPPORTED_BRIDGE_THING_TYPES_UIDS)
186 .flatMap(Set::stream).collect(Collectors.toSet()));