]> git.basschouten.com Git - openhab-addons.git/blob
edcbdd2d0648aeb6949e28bf9929bb452dfc296b
[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.ThingTypeUID;
22
23 /**
24  * The {@link AsuswrtBindingConstants} class defines common constants, which are used across the whole binding.
25  *
26  * @author Christian Wild - Initial contribution
27  */
28 @NonNullByDefault
29 public class AsuswrtBindingConstants {
30
31     public static final String BINDING_ID = "asuswrt";
32
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");
37
38     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_ROUTER, THING_TYPE_CLIENT,
39             THING_TYPE_INTERFACE);
40
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()));
44
45     /*
46      * Channel lists
47      * Item channel names
48      */
49
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";
54
55     // Global channels
56     public static final String CHANNELS_ALL = "any-channel";
57
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";
66
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";
78
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";
86
87     // Channel group client information
88     public static final String CHANNEL_GROUP_CLIENT = "client";
89     public static final String CHANNEL_CLIENT_NICKNAME = "client-name";
90
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";
99
100     /*
101      * Properties
102      */
103
104     // Interface
105     public static final String PROPERTY_INTERFACE_NAME = "interfaceName";
106     public static final String NETWORK_REPRESENTATION_PROPERTY = "interfaceName";
107     // client
108     public static final String PROPERTY_CLIENT_NAME = "dnsName";
109     public static final String CLIENT_REPRESENTATION_PROPERTY = "macAddress";
110
111     /*
112      * JSON request member names
113      * Member names of JSON response
114      */
115     public static final String JSON_MEMBER_TOKEN = "asus_token";
116     // sysInfo
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";
122
123     // lanInfo
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";
128
129     // wanInfo
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";
136
137     // clientInfo
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";
175
176     // usage
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
185
186     // traffic
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";
194 }