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