]> git.basschouten.com Git - openhab-addons.git/blob
d2ea5304cc958e81c744d86ee5504fc3874d59e3
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2022 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.bmwconnecteddrive.internal;
14
15 import java.util.Set;
16
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.openhab.core.thing.ThingTypeUID;
19
20 /**
21  * The {@link ConnectedDriveConstants} class defines common constants, which are
22  * used across the whole binding.
23  *
24  * @author Bernd Weymann - Initial contribution
25  * @author Norbert Truchsess - edit & send of charge profile
26  */
27 @NonNullByDefault
28 public class ConnectedDriveConstants {
29
30     private static final String BINDING_ID = "bmwconnecteddrive";
31
32     // Units
33     public static final String UNITS_AUTODETECT = "AUTODETECT";
34     public static final String UNITS_IMPERIAL = "IMPERIAL";
35     public static final String UNITS_METRIC = "METRIC";
36
37     public static final String VIN = "vin";
38
39     public static final int DEFAULT_IMAGE_SIZE_PX = 1024;
40     public static final int DEFAULT_REFRESH_INTERVAL_MINUTES = 5;
41     public static final String DEFAULT_IMAGE_VIEWPORT = "FRONT";
42
43     // See constants from bimmer-connected
44     // https://github.com/bimmerconnected/bimmer_connected/blob/master/bimmer_connected/vehicle.py
45     public enum VehicleType {
46         CONVENTIONAL("conv"),
47         PLUGIN_HYBRID("phev"),
48         ELECTRIC_REX("bev_rex"),
49         ELECTRIC("bev");
50
51         private final String type;
52
53         VehicleType(String s) {
54             type = s;
55         }
56
57         @Override
58         public String toString() {
59             return type;
60         }
61     }
62
63     public enum ChargingMode {
64         IMMEDIATE_CHARGING,
65         DELAYED_CHARGING
66     }
67
68     public enum ChargingPreference {
69         NO_PRESELECTION,
70         CHARGING_WINDOW
71     }
72
73     public static final Set<String> FUEL_VEHICLES = Set.of(VehicleType.CONVENTIONAL.toString(),
74             VehicleType.PLUGIN_HYBRID.toString(), VehicleType.ELECTRIC_REX.toString());
75     public static final Set<String> ELECTRIC_VEHICLES = Set.of(VehicleType.ELECTRIC.toString(),
76             VehicleType.PLUGIN_HYBRID.toString(), VehicleType.ELECTRIC_REX.toString());
77
78     // Countries with Mileage display
79     public static final Set<String> IMPERIAL_COUNTRIES = Set.of("US", "GB");
80
81     // List of all Thing Type UIDs
82     public static final ThingTypeUID THING_TYPE_CONNECTED_DRIVE_ACCOUNT = new ThingTypeUID(BINDING_ID, "account");
83     public static final ThingTypeUID THING_TYPE_CONV = new ThingTypeUID(BINDING_ID,
84             VehicleType.CONVENTIONAL.toString());
85     public static final ThingTypeUID THING_TYPE_PHEV = new ThingTypeUID(BINDING_ID,
86             VehicleType.PLUGIN_HYBRID.toString());
87     public static final ThingTypeUID THING_TYPE_BEV_REX = new ThingTypeUID(BINDING_ID,
88             VehicleType.ELECTRIC_REX.toString());
89     public static final ThingTypeUID THING_TYPE_BEV = new ThingTypeUID(BINDING_ID, VehicleType.ELECTRIC.toString());
90     public static final Set<ThingTypeUID> SUPPORTED_THING_SET = Set.of(THING_TYPE_CONNECTED_DRIVE_ACCOUNT,
91             THING_TYPE_CONV, THING_TYPE_PHEV, THING_TYPE_BEV_REX, THING_TYPE_BEV);
92
93     // Thing Group definitions
94     public static final String CHANNEL_GROUP_STATUS = "status";
95     public static final String CHANNEL_GROUP_SERVICE = "service";
96     public static final String CHANNEL_GROUP_CHECK_CONTROL = "check";
97     public static final String CHANNEL_GROUP_DOORS = "doors";
98     public static final String CHANNEL_GROUP_RANGE = "range";
99     public static final String CHANNEL_GROUP_LOCATION = "location";
100     public static final String CHANNEL_GROUP_LAST_TRIP = "last-trip";
101     public static final String CHANNEL_GROUP_LIFETIME = "lifetime";
102     public static final String CHANNEL_GROUP_REMOTE = "remote";
103     public static final String CHANNEL_GROUP_CHARGE = "charge";
104     public static final String CHANNEL_GROUP_VEHICLE_IMAGE = "image";
105     public static final String CHANNEL_GROUP_DESTINATION = "destination";
106
107     // Generic Constants for several groups
108     public static final String NAME = "name";
109     public static final String DETAILS = "details";
110     public static final String DATE = "date";
111     public static final String MILEAGE = "mileage";
112     public static final String GPS = "gps";
113     public static final String HEADING = "heading";
114
115     // Status
116     public static final String DOORS = "doors";
117     public static final String WINDOWS = "windows";
118     public static final String LOCK = "lock";
119     public static final String SERVICE_DATE = "service-date";
120     public static final String SERVICE_MILEAGE = "service-mileage";
121     public static final String CHECK_CONTROL = "check-control";
122     public static final String PLUG_CONNECTION = "plug-connection";
123     public static final String CHARGE_STATUS = "charge";
124     public static final String CHARGE_END_REASON = "reason";
125     public static final String CHARGE_REMAINING = "remaining";
126     public static final String LAST_UPDATE = "last-update";
127     public static final String LAST_UPDATE_REASON = "last-update-reason";
128
129     // Door Details
130     public static final String DOOR_DRIVER_FRONT = "driver-front";
131     public static final String DOOR_DRIVER_REAR = "driver-rear";
132     public static final String DOOR_PASSENGER_FRONT = "passenger-front";
133     public static final String DOOR_PASSENGER_REAR = "passenger-rear";
134     public static final String HOOD = "hood";
135     public static final String TRUNK = "trunk";
136     public static final String WINDOW_DOOR_DRIVER_FRONT = "win-driver-front";
137     public static final String WINDOW_DOOR_DRIVER_REAR = "win-driver-rear";
138     public static final String WINDOW_DOOR_PASSENGER_FRONT = "win-passenger-front";
139     public static final String WINDOW_DOOR_PASSENGER_REAR = "win-passenger-rear";
140     public static final String WINDOW_REAR = "win-rear";
141     public static final String SUNROOF = "sunroof";
142
143     // Charge Profile
144     public static final String CHARGE_PROFILE_CLIMATE = "profile-climate";
145     public static final String CHARGE_PROFILE_MODE = "profile-mode";
146     public static final String CHARGE_PROFILE_PREFERENCE = "profile-prefs";
147     public static final String CHARGE_WINDOW_START = "window-start";
148     public static final String CHARGE_WINDOW_END = "window-end";
149     public static final String CHARGE_TIMER1 = "timer1";
150     public static final String CHARGE_TIMER2 = "timer2";
151     public static final String CHARGE_TIMER3 = "timer3";
152     public static final String CHARGE_OVERRIDE = "override";
153     public static final String CHARGE_DEPARTURE = "-departure";
154     public static final String CHARGE_ENABLED = "-enabled";
155     public static final String CHARGE_DAYS = "-days";
156     public static final String CHARGE_DAY_MON = "-day-mon";
157     public static final String CHARGE_DAY_TUE = "-day-tue";
158     public static final String CHARGE_DAY_WED = "-day-wed";
159     public static final String CHARGE_DAY_THU = "-day-thu";
160     public static final String CHARGE_DAY_FRI = "-day-fri";
161     public static final String CHARGE_DAY_SAT = "-day-sat";
162     public static final String CHARGE_DAY_SUN = "-day-sun";
163
164     // Range
165     public static final String RANGE_HYBRID = "hybrid";
166     public static final String RANGE_HYBRID_MAX = "hybrid-max";
167     public static final String RANGE_ELECTRIC = "electric";
168     public static final String RANGE_ELECTRIC_MAX = "electric-max";
169     public static final String SOC = "soc";
170     public static final String SOC_MAX = "soc-max";
171     public static final String RANGE_FUEL = "fuel";
172     public static final String REMAINING_FUEL = "remaining-fuel";
173     public static final String RANGE_RADIUS_ELECTRIC = "radius-electric";
174     public static final String RANGE_RADIUS_ELECTRIC_MAX = "radius-electric-max";
175     public static final String RANGE_RADIUS_FUEL = "radius-fuel";
176     public static final String RANGE_RADIUS_HYBRID = "radius-hybrid";
177     public static final String RANGE_RADIUS_HYBRID_MAX = "radius-hybrid-max";
178
179     // Last Trip
180     public static final String DURATION = "duration";
181     public static final String DISTANCE = "distance";
182     public static final String DISTANCE_SINCE_CHARGING = "distance-since-charging";
183     public static final String AVG_CONSUMPTION = "avg-consumption";
184     public static final String AVG_COMBINED_CONSUMPTION = "avg-combined-consumption";
185     public static final String AVG_RECUPERATION = "avg-recuperation";
186
187     // Lifetime + Average Consumptions
188     public static final String TOTAL_DRIVEN_DISTANCE = "total-driven-distance";
189     public static final String SINGLE_LONGEST_DISTANCE = "single-longest-distance";
190
191     // Image
192     public static final String IMAGE_FORMAT = "png";
193     public static final String IMAGE_VIEWPORT = "view";
194     public static final String IMAGE_SIZE = "size";
195
196     // Remote Services
197     public static final String REMOTE_SERVICE_LIGHT_FLASH = "light";
198     public static final String REMOTE_SERVICE_VEHICLE_FINDER = "finder";
199     public static final String REMOTE_SERVICE_DOOR_LOCK = "lock";
200     public static final String REMOTE_SERVICE_DOOR_UNLOCK = "unlock";
201     public static final String REMOTE_SERVICE_HORN = "horn";
202     public static final String REMOTE_SERVICE_AIR_CONDITIONING = "climate";
203     public static final String REMOTE_SERVICE_CHARGE_NOW = "charge-now";
204     public static final String REMOTE_SERVICE_CHARGING_CONTROL = "charge-control";
205     public static final String REMOTE_SERVICE_COMMAND = "command";
206     public static final String REMOTE_STATE = "state";
207 }