2 * Copyright (c) 2010-2024 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.freeboxos.internal;
16 import java.util.stream.Collectors;
17 import java.util.stream.Stream;
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.openhab.binding.freeboxos.internal.api.rest.HomeManager.Category;
21 import org.openhab.core.library.types.OnOffType;
22 import org.openhab.core.library.types.OpenClosedType;
23 import org.openhab.core.library.types.UpDownType;
24 import org.openhab.core.thing.ThingTypeUID;
25 import org.openhab.core.types.Command;
28 * The {@link FreeboxOsBindingConstants} class defines common constants, which are used across the binding.
30 * @author Gaƫl L'hopital - Initial contribution
33 public class FreeboxOsBindingConstants {
35 public static final String BINDING_ID = "freeboxos";
37 // List of all Bridge Type UIDs
38 public static final ThingTypeUID BRIDGE_TYPE_API = new ThingTypeUID(BINDING_ID, "api");
40 // Thing Types ID strings
41 private static final String THING_DECT = "dect";
42 private static final String THING_FXS = "fxs";
43 private static final String THING_REVOLUTION = "revolution";
44 private static final String THING_DELTA = "delta";
45 private static final String THING_WIFI_HOST = "wifihost";
46 private static final String THING_ACTIVE_PLAYER = "active-player";
48 public static final String THING_FREEPLUG = "freeplug";
49 public static final String THING_VM = "vm";
50 public static final String THING_CALL = "call";
51 public static final String THING_HOST = "host";
52 public static final String THING_PLAYER = "player";
53 public static final String THING_REPEATER = "repeater";
55 // List of all Thing Type UIDs
56 public static final ThingTypeUID THING_TYPE_REVOLUTION = new ThingTypeUID(BINDING_ID, THING_REVOLUTION);
57 public static final ThingTypeUID THING_TYPE_DELTA = new ThingTypeUID(BINDING_ID, THING_DELTA);
58 public static final ThingTypeUID THING_TYPE_FXS = new ThingTypeUID(BINDING_ID, THING_FXS);
59 public static final ThingTypeUID THING_TYPE_DECT = new ThingTypeUID(BINDING_ID, THING_DECT);
60 public static final ThingTypeUID THING_TYPE_CALL = new ThingTypeUID(BINDING_ID, THING_CALL);
61 public static final ThingTypeUID THING_TYPE_FREEPLUG = new ThingTypeUID(BINDING_ID, THING_FREEPLUG);
62 public static final ThingTypeUID THING_TYPE_HOST = new ThingTypeUID(BINDING_ID, THING_HOST);
63 public static final ThingTypeUID THING_TYPE_WIFI_HOST = new ThingTypeUID(BINDING_ID, THING_WIFI_HOST);
64 public static final ThingTypeUID THING_TYPE_PLAYER = new ThingTypeUID(BINDING_ID, THING_PLAYER);
65 public static final ThingTypeUID THING_TYPE_ACTIVE_PLAYER = new ThingTypeUID(BINDING_ID, THING_ACTIVE_PLAYER);
66 public static final ThingTypeUID THING_TYPE_VM = new ThingTypeUID(BINDING_ID, THING_VM);
67 public static final ThingTypeUID THING_TYPE_REPEATER = new ThingTypeUID(BINDING_ID, THING_REPEATER);
69 // All supported Thing types
70 public static final Set<ThingTypeUID> BRIDGE_TYPE_UIDS = Set.of(BRIDGE_TYPE_API);
71 public static final Set<ThingTypeUID> THINGS_TYPES_UIDS = Set.of(THING_TYPE_FXS, THING_TYPE_DECT, THING_TYPE_CALL,
72 THING_TYPE_HOST, THING_TYPE_VM, THING_TYPE_PLAYER, THING_TYPE_ACTIVE_PLAYER, THING_TYPE_DELTA,
73 THING_TYPE_REVOLUTION, THING_TYPE_REPEATER, THING_TYPE_WIFI_HOST, THING_TYPE_FREEPLUG);
74 public static final Set<ThingTypeUID> HOME_TYPES_UIDS = Set.of(Category.BASIC_SHUTTER.getThingTypeUID(),
75 Category.SHUTTER.getThingTypeUID(), Category.KFB.getThingTypeUID(), Category.CAMERA.getThingTypeUID(),
76 Category.ALARM.getThingTypeUID());
78 protected static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Stream
79 .of(BRIDGE_TYPE_UIDS, THINGS_TYPES_UIDS, HOME_TYPES_UIDS).flatMap(Set::stream).collect(Collectors.toSet());
82 // public static final String LAST_CALL_TIMESTAMP = "lastCallTimestamp";
83 public static final String ROLE = "role";
84 public static final String NET_ID = "netId";
85 public static final String ETHERNET_SPEED = "ethernetSpeed";
86 public static final String LOCAL = "local";
87 public static final String FULL_DUPLEX = "fullDuplex";
89 // List of all Group Channel ids
90 public static final String GROUP_SENSORS = "sensors";
91 public static final String GROUP_FANS = "fans";
92 public static final String GROUP_CONNECTION_STATUS = "connection-status";
93 public static final String GROUP_SYS_INFO = "sysinfo";
94 public static final String GROUP_ACTIONS = "actions";
95 public static final String GROUP_PLAYER_STATUS = "player-status";
96 public static final String GROUP_FILE_SHARING = "file-sharing";
97 public static final String GROUP_CONNECTIVITY = "connectivity";
98 public static final String GROUP_DISPLAY = "display";
99 public static final String GROUP_VM_STATUS = "vmstatus";
100 public static final String GROUP_WIFI = "wifi";
101 public static final String GROUP_REPEATER_MISC = "repeater-misc";
103 // List of all Channel ids
104 public static final String RSSI = "rssi";
105 public static final String SSID = "ssid";
106 public static final String WIFI_QUALITY = "wifi-quality";
107 public static final String WIFI_HOST = "wifi-host";
108 public static final String UPTIME = "uptime";
109 public static final String BOX_EVENT = "box-event";
110 public static final String LCD_BRIGHTNESS = "lcd-brightness";
111 public static final String LCD_ORIENTATION = "lcd-orientation";
112 public static final String LCD_FORCED = "lcd-forced";
113 public static final String WIFI_STATUS = "wifi-status";
114 public static final String IP_ADDRESS = "ip-address";
115 public static final String IPV6_ADDRESS = "ipv6-address";
116 public static final String LINE_STATUS = "line-status";
117 public static final String LINE_TYPE = "line-type";
118 public static final String LINE_MEDIA = "line-media";
119 public static final String PLAYER_STATUS = "player-status";
120 public static final String PACKAGE = "package";
121 public static final String RATE = "rate";
122 public static final String BYTES_UP = "bytes-up";
123 public static final String BYTES_DOWN = "bytes-down";
124 public static final String BW = "bandwidth";
125 public static final String PCT_BW = "bandwidth-usage";
126 public static final String CONNECTION_STATUS = "connection-status";
127 public static final String ONHOOK = "onhook";
128 public static final String RINGING = "ringing";
129 public static final String HARDWARE_STATUS = "hardware-status";
130 public static final String TELEPHONY_SERVICE = "telephony-service";
131 public static final String GAIN_RX = "gain-rx";
132 public static final String GAIN_TX = "gain-tx";
133 public static final String FTP_STATUS = "ftp-status";
134 public static final String SAMBA_FILE_STATUS = "samba-file-status";
135 public static final String SAMBA_PRINTER_STATUS = "samba-printer-status";
136 public static final String AFP_FILE_STATUS = "afp-file-status";
137 public static final String REACHABLE = "reachable";
138 public static final String LAST_SEEN = "last-seen";
139 public static final String ALTERNATE_RING = "lcd-forced";
140 public static final String DECT_ACTIVE = "dect-active";
141 public static final String UPNPAV_STATUS = "upnpav-status";
143 // Call channels for groups Accepted, Missed and Outgoing
144 public static final String NUMBER = "number";
145 public static final String DURATION = "duration";
146 public static final String TIMESTAMP = "timestamp";
147 public static final String NAME = "name";
149 // Freebox player channels
150 public static final String AIRMEDIA_STATUS = "airmedia-status";
151 public static final String KEY_CODE = "key-code";
153 // Virtual machine channels
154 public static final String STATUS = "status";
157 public static final String LED = "led";
158 public static final String HOST_COUNT = "host-count";
161 public static final String KEYFOB_ENABLE = "enable";
162 public static final String NODE_BATTERY = "battery";
163 public static final String SHUTTER_POSITION = "position-set";
164 public static final String SHUTTER_STOP = "stop";
165 public static final String BASIC_SHUTTER_STATE = "state";
166 public static final String BASIC_SHUTTER_UP = "up";
167 public static final String BASIC_SHUTTER_DOWN = "down";
168 // public static final String BASIC_SHUTTER_CMD = "basic-shutter";
169 public static final String ALARM_PIN = "pin";
170 public static final String ALARM_SOUND = "sound";
171 public static final String ALARM_VOLUME = "volume";
172 public static final String ALARM_TIMEOUT1 = "timeout1";
173 public static final String ALARM_TIMEOUT2 = "timeout2";
174 public static final String ALARM_TIMEOUT3 = "timeout3";
176 public static final Set<Command> TRUE_COMMANDS = Set.of(OnOffType.ON, UpDownType.UP, OpenClosedType.OPEN);
177 public static final Set<Class<?>> ON_OFF_CLASSES = Set.of(OnOffType.class, UpDownType.class, OpenClosedType.class);