2 * Copyright (c) 2010-2022 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.tesla.internal;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.core.thing.ThingTypeUID;
19 * The {@link TeslaBindingConstants} class defines common constants, which are
20 * used across the whole binding.
22 * @author Karel Goderis - Initial contribution
25 public class TeslaBindingConstants {
28 public static final String API_NAME = "Tesla Client API";
29 public static final String API_VERSION = "api/1/";
30 public static final String PATH_COMMAND = "command/{cmd}";
31 public static final String PATH_DATA_REQUEST = "data_request/{cmd}";
32 public static final String PATH_VEHICLE_ID = "/{vid}/";
33 public static final String PATH_WAKE_UP = "wake_up";
34 public static final String PATH_ACCESS_TOKEN = "oauth/token";
35 public static final String URI_EVENT = "wss://streaming.vn.teslamotors.com/streaming/";
36 public static final String URI_OWNERS = "https://owner-api.teslamotors.com";
37 public static final String VALETPIN = "valetpin";
38 public static final String VEHICLES = "vehicles";
39 public static final String VIN = "vin";
42 public static final String SSO_SCOPES = "openid email offline_access";
43 public static final String URI_SSO = "https://auth.tesla.com/oauth2/v3";
44 public static final String PATH_AUTHORIZE = "authorize";
45 public static final String PATH_TOKEN = "token";
46 public static final String URI_CALLBACK = "https://auth.tesla.com/void/callback";
47 public static final String CLIENT_ID = "ownerapi";
49 // Tesla REST API commands
50 public static final String COMMAND_ACTUATE_TRUNK = "actuate_trunk";
51 public static final String COMMAND_AUTO_COND_START = "auto_conditioning_start";
52 public static final String COMMAND_AUTO_COND_STOP = "auto_conditioning_stop";
53 public static final String COMMAND_CHARGE_MAX = "charge_max_range";
54 public static final String COMMAND_CHARGE_START = "charge_start";
55 public static final String COMMAND_CHARGE_STD = "charge_standard";
56 public static final String COMMAND_CHARGE_STOP = "charge_stop";
57 public static final String COMMAND_DOOR_LOCK = "door_lock";
58 public static final String COMMAND_DOOR_UNLOCK = "door_unlock";
59 public static final String COMMAND_FLASH_LIGHTS = "flash_lights";
60 public static final String COMMAND_HONK_HORN = "honk_horn";
61 public static final String COMMAND_OPEN_CHARGE_PORT = "charge_port_door_open";
62 public static final String COMMAND_RESET_VALET_PIN = "reset_valet_pin";
63 public static final String COMMAND_SET_CHARGING_AMPS = "set_charging_amps";
64 public static final String COMMAND_SET_CHARGE_LIMIT = "set_charge_limit";
65 public static final String COMMAND_SET_SENTRY_MODE = "set_sentry_mode";
66 public static final String COMMAND_SET_TEMP = "set_temps";
67 public static final String COMMAND_SET_VALET_MODE = "set_valet_mode";
68 public static final String COMMAND_STEERING_WHEEL_HEATER = "remote_steering_wheel_heater_request";
69 public static final String COMMAND_SUN_ROOF = "sun_roof_control";
70 public static final String COMMAND_THROTTLE = "commandthrottle";
71 public static final String COMMAND_WAKE_UP = "wake_up";
72 public static final String DATA_THROTTLE = "datathrottle";
74 // Tesla REST API vehicle states
75 public static final String CHARGE_STATE = "charge_state";
76 public static final String CLIMATE_STATE = "climate_state";
77 public static final String DRIVE_STATE = "drive_state";
78 public static final String GUI_STATE = "gui_settings";
79 public static final String MOBILE_ENABLED_STATE = "mobile_enabled";
80 public static final String VEHICLE_STATE = "vehicle_state";
81 public static final String VEHICLE_CONFIG = "vehicle_config";
83 public static final String BINDING_ID = "tesla";
85 // List of all Thing Type UIDs
86 public static final ThingTypeUID THING_TYPE_ACCOUNT = new ThingTypeUID(BINDING_ID, "account");
87 public static final ThingTypeUID THING_TYPE_VEHICLE = new ThingTypeUID(BINDING_ID, "vehicle");
88 public static final ThingTypeUID THING_TYPE_MODELS = new ThingTypeUID(BINDING_ID, "models");
89 public static final ThingTypeUID THING_TYPE_MODEL3 = new ThingTypeUID(BINDING_ID, "model3");
90 public static final ThingTypeUID THING_TYPE_MODELX = new ThingTypeUID(BINDING_ID, "modelx");
91 public static final ThingTypeUID THING_TYPE_MODELY = new ThingTypeUID(BINDING_ID, "modely");
93 public enum EventKeys {
109 public static final String CHANNEL_CHARGE = "charge";
110 public static final String CHANNEL_COMBINED_TEMP = "combinedtemp";
112 // thing configurations
113 public static final String CONFIG_ALLOWWAKEUP = "allowWakeup";
114 public static final String CONFIG_ALLOWWAKEUPFORCOMMANDS = "allowWakeupForCommands";
115 public static final String CONFIG_ENABLEEVENTS = "enableEvents";
116 public static final String CONFIG_REFRESHTOKEN = "refreshToken";
117 public static final String CONFIG_INACTIVITY = "inactivity";
118 public static final String CONFIG_USEDRIVESTATE = "useDriveState";
119 public static final String CONFIG_USEDADVANCEDSTATES = "useAdvancedStatesForPolling";