]> git.basschouten.com Git - openhab-addons.git/blob
239ea2d06f30d6972d60e39a644a03b60ed930ec
[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.easee.internal;
14
15 import java.time.Instant;
16 import java.util.Set;
17
18 import org.eclipse.jdt.annotation.NonNullByDefault;
19 import org.openhab.core.thing.ThingTypeUID;
20
21 /**
22  * The {@link EaseeBindingConstants} class defines common constants, which are
23  * used across the whole binding.
24  *
25  * @author Alexander Friese - Initial contribution
26  */
27 @NonNullByDefault
28 public class EaseeBindingConstants {
29
30     public static final String BINDING_ID = "easee";
31
32     // List of main device types
33     public static final String DEVICE_SITE = "site";
34     public static final String DEVICE_MASTER_CHARGER = "mastercharger";
35     public static final String DEVICE_CHARGER = "charger";
36
37     // List of all Thing Type UIDs
38     public static final ThingTypeUID THING_TYPE_SITE = new ThingTypeUID(BINDING_ID, DEVICE_SITE);
39     public static final ThingTypeUID THING_TYPE_MASTER_CHARGER = new ThingTypeUID(BINDING_ID, DEVICE_MASTER_CHARGER);
40     public static final ThingTypeUID THING_TYPE_CHARGER = new ThingTypeUID(BINDING_ID, DEVICE_CHARGER);
41
42     // List of all channel groups
43     public static final String CHANNEL_GROUP_NONE = "";
44     public static final String CHANNEL_GROUP_SITE_INFO = "info";
45     public static final String CHANNEL_GROUP_CHARGER = "charger";
46     public static final String CHANNEL_GROUP_CHARGER_STATE = "state";
47     public static final String CHANNEL_GROUP_CHARGER_CONFIG = "config";
48     public static final String CHANNEL_GROUP_CHARGER_COMMANDS = "commands";
49     public static final String CHANNEL_GROUP_CHARGER_LATEST_SESSION = "latestSession";
50     public static final String CHANNEL_GROUP_CIRCUIT_DYNAMIC_CURRENT = "dynamicCurrent";
51     public static final String CHANNEL_GROUP_CIRCUIT_SETTINGS = "settings";
52
53     // Channel types
54     public static final String CHANNEL_TYPE_SWITCH = "Switch";
55     public static final String CHANNEL_TYPE_VOLT = "Number:ElectricPotential";
56     public static final String CHANNEL_TYPE_AMPERE = "Number:ElectricCurrent";
57     public static final String CHANNEL_TYPE_KWH = "Number:Energy";
58     public static final String CHANNEL_TYPE_POWER = "Number:Power";
59     public static final String CHANNEL_TYPE_DATE = "DateTime";
60     public static final String CHANNEL_TYPE_STRING = "String";
61     public static final String CHANNEL_TYPE_NUMBER = "Number";
62
63     public static final String CHANNEL_TYPEPREFIX_RW = "rw";
64
65     public static final String CHANNEL_TYPENAME_INTEGER = "type-integer";
66     public static final String CHANNEL_TYPENAME_RSSI = "type-rssi";
67
68     // Channels with specific handling
69     public static final String CHANNEL_CHARGER_OP_MODE = "chargerOpMode";
70     public static final String CHANNEL_CHARGER_DYNAMIC_CURRENT = "dynamicChargerCurrent";
71     public static final String CHANNEL_CHARGER_REASON_FOR_NO_CURRENT = "reasonForNoCurrent";
72     public static final String CHANNEL_CHARGER_START_STOP = "startStop";
73     public static final String CHANNEL_CHARGER_PAUSE_RESUME = "pauseResume";
74     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENTS = "dynamicCurrents";
75     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENT_PHASE1 = "phase1";
76     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENT_PHASE2 = "phase2";
77     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENT_PHASE3 = "phase3";
78     public static final String CHANNEL_CIRCUIT_MAX_CURRENTS = "maxCurrents";
79     public static final String CHANNEL_CIRCUIT_MAX_CURRENT_PHASE1 = "maxCircuitCurrentP1";
80     public static final String CHANNEL_CIRCUIT_MAX_CURRENT_PHASE2 = "maxCircuitCurrentP2";
81     public static final String CHANNEL_CIRCUIT_MAX_CURRENT_PHASE3 = "maxCircuitCurrentP3";
82     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENTS = "offlineMaxCurrents";
83     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENT_PHASE1 = "offlineMaxCircuitCurrentP1";
84     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENT_PHASE2 = "offlineMaxCircuitCurrentP2";
85     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENT_PHASE3 = "offlineMaxCircuitCurrentP3";
86
87     // JSON Keys
88     public static final String JSON_KEY_GENERIC_ID = "id";
89     public static final String JSON_KEY_GENERIC_NAME = "name";
90     public static final String JSON_KEY_CIRCUIT_NAME = "panelName";
91     public static final String JSON_KEY_CIRCUIT_ID = "circuitId";
92     public static final String JSON_KEY_CHARGER_ID = "chargerID";
93     public static final String JSON_KEY_CIRCUITS = "circuits";
94     public static final String JSON_KEY_CHARGERS = "chargers";
95     public static final String JSON_KEY_BACK_PLATE = "backPlate";
96     public static final String JSON_KEY_MASTER_BACK_PLATE = "masterBackPlate";
97     public static final String JSON_KEY_MASTER_BACK_PLATE_ID = "masterBackPlateId";
98     public static final String JSON_KEY_ONLINE = "isOnline";
99     public static final String JSON_KEY_SITE_KEY = "siteKey";
100     public static final String JSON_KEY_ERROR_TITLE = "title";
101     public static final String JSON_KEY_AUTH_ACCESS_TOKEN = "accessToken";
102     public static final String JSON_KEY_AUTH_REFRESH_TOKEN = "refreshToken";
103     public static final String JSON_KEY_AUTH_EXPIRES_IN = "expiresIn";
104     public static final String JSON_KEY_CIRCUIT_STATES = "circuitStates";
105     public static final String JSON_KEY_CHARGER_STATES = "chargerStates";
106     public static final String JSON_KEY_CHARGER_STATE = "chargerState";
107
108     // Write Commands
109     public static final String COMMAND_CHANGE_CONFIGURATION = "ChangeConfiguration";
110     public static final String COMMAND_SEND_COMMAND = "SendCommand";
111     public static final String COMMAND_SEND_COMMAND_START_STOP = "SendCommandStartStop";
112     public static final String COMMAND_SEND_COMMAND_PAUSE_RESUME = "SendCommandPauseResume";
113     public static final String COMMAND_SET_CIRCUIT_SETTINGS = "SetCircuitSettings";
114     public static final String COMMAND_SET_DYNAMIC_CIRCUIT_CURRENTS = "SetDynamicCircuitCurrents";
115     public static final String COMMAND_SET_MAX_CIRCUIT_CURRENTS = "SetMaxCircuitCurrents";
116     public static final String COMMAND_SET_OFFLINE_MAX_CIRCUIT_CURRENTS = "SetOfflineMaxCircuitCurrents";
117
118     // Command Values
119     public static final String CMD_VAL_START_CHARGING = "start_charging";
120     public static final String CMD_VAL_STOP_CHARGING = "stop_charging";
121     public static final String CMD_VAL_PAUSE_CHARGING = "pause_charging";
122     public static final String CMD_VAL_RESUME_CHARGING = "resume_charging";
123
124     // web request constants
125     public static final long WEB_REQUEST_INITIAL_DELAY = 30;
126     public static final long WEB_REQUEST_INTERVAL = 5;
127     public static final int WEB_REQUEST_QUEUE_MAX_SIZE = 20;
128     public static final int WEB_REQUEST_TOKEN_EXPIRY_BUFFER_MINUTES = 5;
129     public static final int WEB_REQUEST_TOKEN_MAX_AGE_MINUTES = 60;
130     public static final String WEB_REQUEST_BEARER_TOKEN_PREFIX = "Bearer ";
131
132     // URLs
133     private static final String API_BASE_URL = "https://api.easee.com/api";
134     public static final String LOGIN_URL = API_BASE_URL + "/accounts/login";
135     public static final String REFRESH_TOKEN_URL = API_BASE_URL + "/accounts/refresh_token";
136     public static final String GET_SITE_URL = API_BASE_URL + "/sites/{siteId}";
137     public static final String CHARGER_URL = API_BASE_URL + "/chargers/{id}";
138     public static final String SITE_STATE_URL = API_BASE_URL + "/sites/{siteId}/state";
139     public static final String GET_CONFIGURATION_URL = API_BASE_URL + "/chargers/{id}/config";
140     public static final String CHANGE_CONFIGURATION_URL = API_BASE_URL + "/chargers/{id}/settings";
141     public static final String COMMANDS_URL = API_BASE_URL + "/chargers/{id}/commands/{command}";
142     public static final String LATEST_CHARGING_SESSION_URL = API_BASE_URL + "/chargers/{id}/sessions/latest";
143     public static final String DYNAMIC_CIRCUIT_CURRENT_URL = API_BASE_URL
144             + "/sites/{siteId}/circuits/{circuitId}/dynamicCurrent";
145     public static final String CIRCUIT_SETTINGS_URL = API_BASE_URL + "/sites/{siteId}/circuits/{circuitId}/settings";
146
147     // Status Keys
148     public static final String STATUS_TOKEN_VALIDATED = "@text/status.token.validated";
149     public static final String STATUS_WAITING_FOR_BRIDGE = "@text/status.waiting.for.bridge";
150     public static final String STATUS_WAITING_FOR_LOGIN = "@text/status.waiting.for.login";
151     public static final String STATUS_NO_VALID_DATA = "@text/status.no.valid.data";
152     public static final String STATUS_NO_CONNECTION = "@text/status.no.connection";
153
154     // other
155     public static final long POLLING_INITIAL_DELAY = 1;
156
157     public static final String GENERIC_YES = "Yes";
158     public static final String GENERIC_NO = "No";
159     public static final int CHARGER_OP_STATE_WAITING = 2;
160     public static final int CHARGER_OP_STATE_CHARGING = 3;
161     public static final int CHARGER_OP_STATE_NOT_AUTHENTICATED = 7;
162     public static final double CHARGER_DYNAMIC_CURRENT_PAUSE = 0;
163     public static final int CHARGER_REASON_FOR_NO_CURRENT_CIRCUIT_LIMIT = 2;
164     public static final int CHARGER_REASON_FOR_NO_CURRENT_CHARGER_LIMIT = 52;
165
166     public static final String THING_CONFIG_ID = "id";
167     public static final String THING_CONFIG_SITE_ID = "siteId";
168     public static final String THING_CONFIG_CIRCUIT_ID = "circuitId";
169     public static final String THING_CONFIG_CIRCUIT_NAME = "circuitName";
170     public static final String THING_CONFIG_IS_MASTER = "isMaster";
171     public static final String THING_CONFIG_BACK_PLATE_ID = "backPlateId";
172     public static final String THING_CONFIG_MASTER_BACK_PLATE_ID = "masterBackPlateId";
173
174     public static final Instant OUTDATED_DATE = Instant.EPOCH;
175     public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
176
177     public static final String PARAMETER_NAME_WRITE_COMMAND = "writeCommand";
178     public static final String PARAMETER_NAME_VALIDATION_REGEXP = "validationExpression";
179
180     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_SITE,
181             THING_TYPE_MASTER_CHARGER, THING_TYPE_CHARGER);
182 }