2 * Copyright (c) 2010-2024 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.mercedesme.internal;
15 import javax.measure.Unit;
16 import javax.measure.quantity.Length;
18 import org.eclipse.jdt.annotation.NonNullByDefault;
19 import org.openhab.core.library.unit.MetricPrefix;
20 import org.openhab.core.library.unit.SIUnits;
21 import org.openhab.core.thing.ThingTypeUID;
24 * The {@link Constants} class defines common constants, which are
25 * used across the whole binding.
27 * @author Bernd Weymann - Initial contribution
30 public class Constants {
31 public static final String BINDING_ID = "mercedesme";
33 public static final String COMBUSTION = "combustion";
34 public static final String HYBRID = "hybrid";
35 public static final String BEV = "bev";
37 // List of all Thing Type UIDs
38 public static final ThingTypeUID THING_TYPE_ACCOUNT = new ThingTypeUID(BINDING_ID, "account");
39 public static final ThingTypeUID THING_TYPE_COMB = new ThingTypeUID(BINDING_ID, COMBUSTION);
40 public static final ThingTypeUID THING_TYPE_HYBRID = new ThingTypeUID(BINDING_ID, HYBRID);
41 public static final ThingTypeUID THING_TYPE_BEV = new ThingTypeUID(BINDING_ID, BEV);
43 public static final String GROUP_RANGE = "range";
44 public static final String GROUP_DOORS = "doors";
45 public static final String GROUP_WINDOWS = "windows";
46 public static final String GROUP_LOCK = "lock";
47 public static final String GROUP_LIGHTS = "lights";
48 public static final String GROUP_LOCATION = "location";
49 public static final String GROUP_IMAGE = "image";
51 public static final String MB_AUTH_URL = "https://ssoalpha.dvb.corpinter.net/v1/auth";
52 public static final String MB_TOKEN_URL = "https://ssoalpha.dvb.corpinter.net/v1/token";
53 public static final String CALLBACK_ENDPOINT = "/mb-callback";
54 public static final String OAUTH_CLIENT_NAME = "#byocar";
56 // https://developer.mercedes-benz.com/products/electric_vehicle_status/docs
57 public static final String SCOPE_EV = "mb:vehicle:mbdata:evstatus";
58 // https://developer.mercedes-benz.com/products/fuel_status/docs
59 public static final String SCOPE_FUEL = "mb:vehicle:mbdata:fuelstatus";
60 // https://developer.mercedes-benz.com/products/pay_as_you_drive_insurance/docs
61 public static final String SCOPE_ODO = "mb:vehicle:mbdata:payasyoudrive";
62 // https://developer.mercedes-benz.com/products/vehicle_lock_status/docs
63 public static final String SCOPE_LOCK = "mb:vehicle:mbdata:vehiclelock";
64 // https://developer.mercedes-benz.com/products/vehicle_status/docs
65 public static final String SCOPE_STATUS = "mb:vehicle:mbdata:vehiclestatus";
66 public static final String SCOPE_OFFLINE = "offline_access";
67 public static final String SCOPE_OPENID = "openid";
69 public static final String BASE_URL = "https://api.mercedes-benz.com/vehicledata/v2";
70 public static final String ODO_URL = BASE_URL + "/vehicles/%s/containers/payasyoudrive";
71 public static final String STATUS_URL = BASE_URL + "/vehicles/%s/containers/vehiclestatus";
72 public static final String LOCK_URL = BASE_URL + "/vehicles/%s/containers/vehiclelockstatus";
73 public static final String FUEL_URL = BASE_URL + "/vehicles/%s/containers/fuelstatus";
74 public static final String EV_URL = BASE_URL + "/vehicles/%s/containers/electricvehicle";
76 // https://developer.mercedes-benz.com/content-page/api_migration_guide
77 public static final String IMAGE_BASE_URL = "https://api.mercedes-benz.com/vehicle_images/v2";
78 public static final String IMAGE_EXTERIOR_RESOURCE_URL = IMAGE_BASE_URL + "/vehicles/%s";
80 public static final String STATUS_TEXT_PREFIX = "@text/mercedesme.";
81 public static final String STATUS_AUTH_NEEDED = ".status.authorization-needed";
82 public static final String STATUS_IP_MISSING = ".status.ip-missing";
83 public static final String STATUS_PORT_MISSING = ".status.port-missing";
84 public static final String STATUS_CLIENT_ID_MISSING = ".status.client-id-missing";
85 public static final String STATUS_CLIENT_SECRET_MISSING = ".status.client-secret-missing";
86 public static final String STATUS_SERVER_RESTART = ".status.server-restart";
87 public static final String STATUS_BRIDGE_MISSING = ".status.bridge-missing";
88 public static final String STATUS_BRIDGE_ATHORIZATION = ".status.bridge-authoriziation";
90 public static final String SPACE = " ";
91 public static final String EMPTY = "";
92 public static final String COLON = ":";
93 public static final String NOT_SET = "not set";
95 public static final String CODE = "code";
96 public static final String MIME_PREFIX = "image/";
98 public static final Unit<Length> KILOMETRE_UNIT = MetricPrefix.KILO(SIUnits.METRE);