]> git.basschouten.com Git - openhab-addons.git/blob
c2614bc4199acd09c8f4e1f00f395834f2bfdea9
[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_KW = "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
67     // Channels with specific handling
68     public static final String CHANNEL_CHARGER_OP_MODE = "chargerOpMode";
69     public static final String CHANNEL_CHARGER_DYNAMIC_CURRENT = "dynamicChargerCurrent";
70     public static final String CHANNEL_CHARGER_REASON_FOR_NO_CURRENT = "reasonForNoCurrent";
71     public static final String CHANNEL_CHARGER_START_STOP = "startStop";
72     public static final String CHANNEL_CHARGER_PAUSE_RESUME = "pauseResume";
73     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENTS = "dynamicCurrents";
74     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENT_PHASE1 = "phase1";
75     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENT_PHASE2 = "phase2";
76     public static final String CHANNEL_CIRCUIT_DYNAMIC_CURRENT_PHASE3 = "phase3";
77     public static final String CHANNEL_CIRCUIT_MAX_CURRENTS = "maxCurrents";
78     public static final String CHANNEL_CIRCUIT_MAX_CURRENT_PHASE1 = "maxCircuitCurrentP1";
79     public static final String CHANNEL_CIRCUIT_MAX_CURRENT_PHASE2 = "maxCircuitCurrentP2";
80     public static final String CHANNEL_CIRCUIT_MAX_CURRENT_PHASE3 = "maxCircuitCurrentP3";
81     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENTS = "offlineMaxCurrents";
82     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENT_PHASE1 = "offlineMaxCircuitCurrentP1";
83     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENT_PHASE2 = "offlineMaxCircuitCurrentP2";
84     public static final String CHANNEL_CIRCUIT_OFFLINE_MAX_CURRENT_PHASE3 = "offlineMaxCircuitCurrentP3";
85
86     // JSON Keys
87     public static final String JSON_KEY_GENERIC_ID = "id";
88     public static final String JSON_KEY_GENERIC_NAME = "name";
89     public static final String JSON_KEY_CIRCUIT_NAME = "panelName";
90     public static final String JSON_KEY_CIRCUIT_ID = "circuitId";
91     public static final String JSON_KEY_CIRCUITS = "circuits";
92     public static final String JSON_KEY_CHARGERS = "chargers";
93     public static final String JSON_KEY_BACK_PLATE = "backPlate";
94     public static final String JSON_KEY_MASTER_BACK_PLATE = "masterBackPlate";
95     public static final String JSON_KEY_MASTER_BACK_PLATE_ID = "masterBackPlateId";
96     public static final String JSON_KEY_ONLINE = "isOnline";
97     public static final String JSON_KEY_SITE_KEY = "siteKey";
98     public static final String JSON_KEY_ERROR_TITLE = "title";
99     public static final String JSON_KEY_AUTH_ACCESS_TOKEN = "accessToken";
100     public static final String JSON_KEY_AUTH_REFRESH_TOKEN = "refreshToken";
101     public static final String JSON_KEY_AUTH_EXPIRES_IN = "expiresIn";
102
103     // Write Commands
104     public static final String COMMAND_CHANGE_CONFIGURATION = "ChangeConfiguration";
105     public static final String COMMAND_SEND_COMMAND = "SendCommand";
106     public static final String COMMAND_SEND_COMMAND_START_STOP = "SendCommandStartStop";
107     public static final String COMMAND_SEND_COMMAND_PAUSE_RESUME = "SendCommandPauseResume";
108     public static final String COMMAND_SET_CIRCUIT_SETTINGS = "SetCircuitSettings";
109     public static final String COMMAND_SET_DYNAMIC_CIRCUIT_CURRENTS = "SetDynamicCircuitCurrents";
110     public static final String COMMAND_SET_MAX_CIRCUIT_CURRENTS = "SetMaxCircuitCurrents";
111     public static final String COMMAND_SET_OFFLINE_MAX_CIRCUIT_CURRENTS = "SetOfflineMaxCircuitCurrents";
112
113     // Command Values
114     public static final String CMD_VAL_START_CHARGING = "start_charging";
115     public static final String CMD_VAL_STOP_CHARGING = "stop_charging";
116     public static final String CMD_VAL_PAUSE_CHARGING = "pause_charging";
117     public static final String CMD_VAL_RESUME_CHARGING = "resume_charging";
118
119     // web request constants
120     public static final long WEB_REQUEST_INITIAL_DELAY = 30;
121     public static final long WEB_REQUEST_INTERVAL = 5;
122     public static final int WEB_REQUEST_QUEUE_MAX_SIZE = 20;
123     public static final int WEB_REQUEST_TOKEN_EXPIRY_BUFFER_MINUTES = 5;
124     public static final int WEB_REQUEST_TOKEN_MAX_AGE_MINUTES = 60;
125     public static final String WEB_REQUEST_BEARER_TOKEN_PREFIX = "Bearer ";
126
127     // URLs
128     public static final String LOGIN_URL = "https://api.easee.cloud/api/accounts/login";
129     public static final String REFRESH_TOKEN_URL = "https://api.easee.cloud/api/accounts/refresh_token";
130     public static final String GET_SITE_URL = "https://api.easee.cloud/api/sites/{siteId}";
131     public static final String CHARGER_URL = "https://api.easee.cloud/api/chargers/{id}";
132     public static final String STATE_URL = "https://api.easee.cloud/api/chargers/{id}/state";
133     public static final String GET_CONFIGURATION_URL = "https://api.easee.cloud/api/chargers/{id}/config";
134     public static final String CHANGE_CONFIGURATION_URL = "https://api.easee.cloud/api/chargers/{id}/settings";
135     public static final String COMMANDS_URL = "https://api.easee.cloud/api/chargers/{id}/commands/{command}";
136     public static final String LATEST_CHARGING_SESSION_URL = "https://api.easee.cloud/api/chargers/{id}/sessions/latest";
137     public static final String DYNAMIC_CIRCUIT_CURRENT_URL = "https://api.easee.cloud/api/sites/{siteId}/circuits/{circuitId}/dynamicCurrent";
138     public static final String CIRCUIT_SETTINGS_URL = "https://api.easee.cloud/api/sites/{siteId}/circuits/{circuitId}/settings";
139
140     // Status Keys
141     public static final String STATUS_TOKEN_VALIDATED = "@text/status.token.validated";
142     public static final String STATUS_WAITING_FOR_BRIDGE = "@text/status.waiting.for.bridge";
143     public static final String STATUS_WAITING_FOR_LOGIN = "@text/status.waiting.for.login";
144     public static final String STATUS_NO_VALID_DATA = "@text/status.no.valid.data";
145     public static final String STATUS_NO_CONNECTION = "@text/status.no.connection";
146
147     // other
148     public static final long POLLING_INITIAL_DELAY = 1;
149
150     public static final String GENERIC_YES = "Yes";
151     public static final String GENERIC_NO = "No";
152     public static final int CHARGER_OP_STATE_WAITING = 2;
153     public static final int CHARGER_OP_STATE_CHARGING = 3;
154     public static final double CHARGER_DYNAMIC_CURRENT_PAUSE = 0;
155     public static final int CHARGER_REASON_FOR_NO_CURRENT_DYNAMIC_0KW = 2;
156     public static final int CHARGER_REASON_FOR_NO_CURRENT_PAUSED = 52;
157
158     public static final String THING_CONFIG_ID = "id";
159     public static final String THING_CONFIG_SITE_ID = "siteId";
160     public static final String THING_CONFIG_CIRCUIT_ID = "circuitId";
161     public static final String THING_CONFIG_CIRCUIT_NAME = "circuitName";
162     public static final String THING_CONFIG_IS_MASTER = "isMaster";
163     public static final String THING_CONFIG_BACK_PLATE_ID = "backPlateId";
164     public static final String THING_CONFIG_MASTER_BACK_PLATE_ID = "masterBackPlateId";
165
166     public static final Instant OUTDATED_DATE = Instant.MIN;
167     public static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
168
169     public static final String PARAMETER_NAME_WRITE_COMMAND = "writeCommand";
170     public static final String PARAMETER_NAME_VALIDATION_REGEXP = "validationExpression";
171
172     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_SITE,
173             THING_TYPE_MASTER_CHARGER, THING_TYPE_CHARGER);
174 }