2 * Copyright (c) 2010-2023 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.asuswrt.internal.constants;
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.thing.ThingTypeUID;
24 * The {@link AsuswrtBindingConstants} class defines common constants, which are used across the whole binding.
26 * @author Christian Wild - Initial contribution
29 public class AsuswrtBindingConstants {
31 public static final String BINDING_ID = "asuswrt";
33 // List of all Thing Type UIDs
34 public static final ThingTypeUID THING_TYPE_ROUTER = new ThingTypeUID(BINDING_ID, "router");
35 public static final ThingTypeUID THING_TYPE_CLIENT = new ThingTypeUID(BINDING_ID, "client");
36 public static final ThingTypeUID THING_TYPE_INTERFACE = new ThingTypeUID(BINDING_ID, "interface");
38 public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_ROUTER, THING_TYPE_CLIENT,
39 THING_TYPE_INTERFACE);
41 // Things with channel groups
42 public static final Set<ThingTypeUID> CHANNEL_GROUP_THING_SET = Collections
43 .unmodifiableSet(Stream.of(SUPPORTED_THING_TYPES_UIDS).flatMap(Set::stream).collect(Collectors.toSet()));
50 // General event constants
51 public static final String EVENT_STATE_CONNECTED = "connected";
52 public static final String EVENT_STATE_GONE = "gone";
53 public static final String EVENT_STATE_DISCONNECTED = "disconnected";
56 public static final String CHANNELS_ALL = "any-channel";
58 // Channel group system info
59 public static final String CHANNEL_GROUP_SYSINFO = "sys-info";
60 public static final String CHANNEL_MEM_FREE = "mem-free";
61 public static final String CHANNEL_MEM_FREE_PERCENT = "mem-free-percent";
62 public static final String CHANNEL_MEM_TOTAL = "mem-total";
63 public static final String CHANNEL_MEM_USED = "mem-used";
64 public static final String CHANNEL_MEM_USED_PERCENT = "mem-used-percent";
65 public static final String CHANNEL_CPU_USED_PERCENT = "cpu-used-percent";
67 // Channel group interface information
68 public static final String CHANNEL_GROUP_NETWORK = "network-info";
69 public static final String CHANNEL_NETWORK_IP = "ip-address";
70 public static final String CHANNEL_NETWORK_MAC = "mac-address";
71 public static final String CHANNEL_NETWORK_MASK = "subnet";
72 public static final String CHANNEL_NETWORK_GATEWAY = "gateway";
73 public static final String CHANNEL_NETWORK_METHOD = "ip-method";
74 public static final String CHANNEL_NETWORK_DNS = "dns-servers";
75 public static final String CHANNEL_NETWORK_STATE = "network-state";
76 public static final String CHANNEL_NETWORK_INTERNET = "internet-state";
77 public static final String EVENT_CONNECTION = "connection-event";
79 // Channel group clientList information
80 public static final String CHANNEL_GROUP_CLIENTS = "client-list";
81 public static final String CHANNEL_CLIENTS_KNOWN = "known-clients";
82 public static final String CHANNEL_CLIENTS_ONLINE = "online-clients";
83 public static final String CHANNEL_CLIENTS_COUNT = "online-clients-count";
84 public static final String CHANNEL_CLIENTS_ONLINE_MAC = "online-macs";
85 public static final String EVENT_CLIENT_CONNECTION = "client-online-event";
87 // Channel group client information
88 public static final String CHANNEL_GROUP_CLIENT = "client";
89 public static final String CHANNEL_CLIENT_NICKNAME = "client-name";
91 // Channel group traffic
92 public static final String CHANNEL_GROUP_TRAFFIC = "traffic";
93 public static final String CHANNEL_TRAFFIC_TOTAL_RX = "total-rx";
94 public static final String CHANNEL_TRAFFIC_TOTAL_TX = "total-tx";
95 public static final String CHANNEL_TRAFFIC_TODAY_RX = "today-rx";
96 public static final String CHANNEL_TRAFFIC_TODAY_TX = "today-tx";
97 public static final String CHANNEL_TRAFFIC_CURRENT_RX = "current-rx";
98 public static final String CHANNEL_TRAFFIC_CURRENT_TX = "current-tx";
105 public static final String PROPERTY_INTERFACE_NAME = "interfaceName";
106 public static final String NETWORK_REPRESENTATION_PROPERTY = "interfaceName";
108 public static final String PROPERTY_CLIENT_NAME = "dnsName";
109 public static final String CLIENT_REPRESENTATION_PROPERTY = "macAddress";
112 * JSON request member names
113 * Member names of JSON response
115 public static final String JSON_MEMBER_TOKEN = "asus_token";
117 public static final String JSON_MEMBER_PRODUCTID = "productid";
118 public static final String JSON_MEMBER_FIRMWARE = "firmver";
119 public static final String JSON_MEMBER_BUILD = "buildno";
120 public static final String JSON_MEMBER_EXTENDNO = "extendo";
121 public static final String JSON_MEMBER_MAC = "lan_hwaddr";
124 public static final String JSON_MEMBER_LAN_IP = "lan_ipaddr";
125 public static final String JSON_MEMBER_LAN_GATEWAY = "lan_gateway";
126 public static final String JSON_MEMBER_LAN_NETMASK = "lan_netmask";
127 public static final String JSON_MEMBER_LAN_PROTO = "lan_proto";
130 public static final String JSON_MEMBER_WAN_IP = "wanlink-ipaddr";
131 public static final String JSON_MEMBER_WAN_GATEWAY = "wanlink-gateway";
132 public static final String JSON_MEMBER_WAN_NETMASK = "wanlink-netmask";
133 public static final String JSON_MEMBER_WAN_PROTO = "wanlink-type";
134 public static final String JSON_MEMBER_WAN_DNS_SERVER = "wanlink-dns";
135 public static final String JSON_MEMBER_WAN_CONNECTED = "wanlink-status";
138 public static final String JSON_MEMBER_CLIENTS = "get_clientlist";
139 public static final String JSON_MEMBER_MACLIST = "maclist";
140 public static final String JSON_MEMBER_API_LEVEL = "ClientAPILevel";
141 public static final String JSON_MEMBER_CLIENT_RXCUR = "curRx";
142 public static final String JSON_MEMBER_CLIENT_TXCUR = "curTx";
143 public static final String JSON_MEMBER_CLIENT_DEFTYPE = "defaultType";
144 public static final String JSON_MEMBER_CLIENT_DPIDEVICE = "dpiDevice";
145 public static final String JSON_MEMBER_CLIENT_DPITYPE = "dpiType";
146 public static final String JSON_MEMBER_CLIENT_IPFROM = "from";
147 public static final String JSON_MEMBER_CLIENT_GROUP = "group";
148 public static final String JSON_MEMBER_CLIENT_INETMODE = "internetMode";
149 public static final String JSON_MEMBER_CLIENT_INETSTATE = "internet-state";
150 public static final String JSON_MEMBER_CLIENT_IP = "ip";
151 public static final String JSON_MEMBER_CLIENT_IPMETHOD = "ip-method";
152 public static final String JSON_MEMBER_CLIENT_IPGATEWAY = "isGateway";
153 public static final String JSON_MEMBER_CLIENT_GN = "isGN";
154 public static final String JSON_MEMBER_CLIENT_ITUNES = "isITunes";
155 public static final String JSON_MEMBER_CLIENT_LOGIN = "isLogin";
156 public static final String JSON_MEMBER_CLIENT_ONLINE = "isOnline";
157 public static final String JSON_MEMBER_CLIENT_PRINTER = "isPrinter";
158 public static final String JSON_MEMBER_CLIENT_WEBSRV = "isWebServer";
159 public static final String JSON_MEMBER_CLIENT_WIFI = "isWL";
160 public static final String JSON_MEMBER_CLIENT_KEEPARP = "keeparp";
161 public static final String JSON_MEMBER_CLIENT_MAC = "mac";
162 public static final String JSON_MEMBER_CLIENT_MACREPEAT = "macRepeat";
163 public static final String JSON_MEMBER_CLIENT_NAME = "name";
164 public static final String JSON_MEMBER_CLIENT_NICK = "nickName";
165 public static final String JSON_MEMBER_CLIENT_MODE = "opMode";
166 public static final String JSON_MEMBER_CLIENT_QOSLVL = "qosLevel";
167 public static final String JSON_MEMBER_CLIENT_ROG = "ROG";
168 public static final String JSON_MEMBER_CLIENT_RSSI = "rssi";
169 public static final String JSON_MEMBER_CLIENT_SSID = "ssid";
170 public static final String JSON_MEMBER_CLIENT_RXTOTAL = "totalRx";
171 public static final String JSON_MEMBER_CLIENT_TXTOTAL = "totalTx";
172 public static final String JSON_MEMBER_CLIENT_VENDOR = "vendor";
173 public static final String JSON_MEMBER_CLIENT_CONNECTTIME = "wlConnectTime";
174 public static final String JSON_MEMBER_CLIENT_WTFAST = "wtfast";
177 public static final String JSON_MEMBER_CPU_USAGE = "cpu_usage";
178 public static final String JSON_MEMBER_CPU_TOTAL = "cpu{x}_total";
179 public static final String JSON_MEMBER_CPU_USED = "cpu{x}_usage";
180 public static final String JSON_MEMBER_MEM_USAGE = "memory_usage";
181 public static final String JSON_MEMBER_MEM_TOTAL = "mem_total";
182 public static final String JSON_MEMBER_MEM_USED = "mem_used";
183 public static final String JSON_MEMBER_MEM_FREE = "mem_free";
184 public static final Integer USAGE_CPU_COUNT = 4; // max count of CPU cores
187 public static final String JSON_MEMBER_TRAFFIC = "netdev";
188 public static final String JSON_MEMBER_INET_RX = "INTERNET_rx";
189 public static final String JSON_MEMBER_INET_TX = "INTERNET_tx";
190 public static final String JSON_MEMBER_LAN_RX = "WIRED_rx";
191 public static final String JSON_MEMBER_LAN_TX = "WIRED_tx";
192 public static final String JSON_MEMBER_WLAN_RX = "WIRELESS{}_rx";
193 public static final String JSON_MEMBER_WLAN_TX = "WIRELESS{}_tx";