]> git.basschouten.com Git - openhab-addons.git/blob
e8c5afe000d20f4033906d71940750537eddfde6
[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.mybmw.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 MyBMWConstants} class defines common constants, which are
22  * used across the whole binding.
23  *
24  * @author Bernd Weymann - Initial contribution
25  * @author Norbert Truchsess - edit and send of charge profile
26  * @author Martin Grassl - updated enum values
27  */
28 @NonNullByDefault
29 public interface MyBMWConstants {
30
31     static final String BINDING_ID = "mybmw";
32
33     static final String VIN = "vin";
34
35     static final String REFRESH_INTERVAL = "refreshInterval";
36
37     static final String VEHICLE_BRAND = "vehicleBrand";
38
39     static final String REMOTE_SERVICES_DISABLED = "remoteServicesDisabled";
40
41     static final String REMOTE_SERVICES_ENABLED = "remoteServicesEnabled";
42
43     static final String SERVICES_DISABLED = "servicesDisabled";
44
45     static final String SERVICES_ENABLED = "servicesEnabled";
46
47     static final String SERVICES_UNSUPPORTED = "servicesUnsupported";
48
49     static final String SERVICES_SUPPORTED = "servicesSupported";
50
51     static final String VEHICLE_BODYTYPE = "vehicleBodytype";
52
53     static final String VEHICLE_CONSTRUCTION_YEAR = "vehicleConstructionYear";
54
55     static final String VEHICLE_DRIVE_TRAIN = "vehicleDriveTrain";
56
57     static final String VEHICLE_MODEL = "vehicleModel";
58
59     static final int DEFAULT_IMAGE_SIZE_PX = 1024;
60
61     static final int DEFAULT_REFRESH_INTERVAL_MINUTES = 5;
62
63     // See constants from bimmer-connected
64     // https://github.com/bimmerconnected/bimmer_connected/blob/master/bimmer_connected/vehicle.py
65     enum VehicleType {
66         CONVENTIONAL("conv"),
67         PLUGIN_HYBRID("phev"),
68         MILD_HYBRID("hybrid"),
69         ELECTRIC_REX("bev_rex"),
70         ELECTRIC("bev"),
71         UNKNOWN("unknown");
72
73         private final String type;
74
75         VehicleType(String s) {
76             type = s;
77         }
78
79         @Override
80         public String toString() {
81             return type;
82         }
83     }
84
85     enum ChargingMode {
86         IMMEDIATE_CHARGING,
87         DELAYED_CHARGING
88     }
89
90     enum ChargingPreference {
91         NO_PRESELECTION,
92         CHARGING_WINDOW
93     }
94
95     static final Set<String> FUEL_VEHICLES = Set.of(VehicleType.CONVENTIONAL.toString(),
96             VehicleType.PLUGIN_HYBRID.toString(), VehicleType.ELECTRIC_REX.toString());
97     static final Set<String> ELECTRIC_VEHICLES = Set.of(VehicleType.ELECTRIC.toString(),
98             VehicleType.PLUGIN_HYBRID.toString(), VehicleType.ELECTRIC_REX.toString());
99
100     // List of all Thing Type UIDs
101     static final ThingTypeUID THING_TYPE_CONNECTED_DRIVE_ACCOUNT = new ThingTypeUID(BINDING_ID, "account");
102     static final ThingTypeUID THING_TYPE_CONV = new ThingTypeUID(BINDING_ID, VehicleType.CONVENTIONAL.toString());
103     static final ThingTypeUID THING_TYPE_PHEV = new ThingTypeUID(BINDING_ID, VehicleType.PLUGIN_HYBRID.toString());
104     static final ThingTypeUID THING_TYPE_BEV_REX = new ThingTypeUID(BINDING_ID, VehicleType.ELECTRIC_REX.toString());
105     static final ThingTypeUID THING_TYPE_BEV = new ThingTypeUID(BINDING_ID, VehicleType.ELECTRIC.toString());
106     static final Set<ThingTypeUID> SUPPORTED_THING_SET = Set.of(THING_TYPE_CONNECTED_DRIVE_ACCOUNT, THING_TYPE_CONV,
107             THING_TYPE_PHEV, THING_TYPE_BEV_REX, THING_TYPE_BEV);
108
109     // Thing Group definitions
110     static final String CHANNEL_GROUP_STATUS = "status";
111     static final String CHANNEL_GROUP_SERVICE = "service";
112     static final String CHANNEL_GROUP_CHECK_CONTROL = "check";
113     static final String CHANNEL_GROUP_DOORS = "doors";
114     static final String CHANNEL_GROUP_RANGE = "range";
115     static final String CHANNEL_GROUP_LOCATION = "location";
116     static final String CHANNEL_GROUP_REMOTE = "remote";
117     static final String CHANNEL_GROUP_CHARGE_PROFILE = "profile";
118     static final String CHANNEL_GROUP_CHARGE_STATISTICS = "statistic";
119     static final String CHANNEL_GROUP_CHARGE_SESSION = "session";
120     static final String CHANNEL_GROUP_TIRES = "tires";
121     static final String CHANNEL_GROUP_VEHICLE_IMAGE = "image";
122
123     // Charge Statistics & Sessions
124     static final String SESSIONS = "sessions";
125     static final String ENERGY = "energy";
126     static final String TITLE = "title";
127     static final String SUBTITLE = "subtitle";
128     static final String ISSUE = "issue";
129     static final String STATUS = "status";
130
131     // Generic Constants for several groups
132     static final String NAME = "name";
133     static final String DETAILS = "details";
134     static final String SEVERITY = "severity";
135     static final String DATE = "date";
136     static final String MILEAGE = "mileage";
137     static final String GPS = "gps";
138     static final String HEADING = "heading";
139     static final String ADDRESS = "address";
140     static final String HOME_DISTANCE = "home-distance";
141
142     // Status
143     static final String DOORS = "doors";
144     static final String WINDOWS = "windows";
145     static final String LOCK = "lock";
146     static final String SERVICE_DATE = "service-date";
147     static final String SERVICE_MILEAGE = "service-mileage";
148     static final String CHECK_CONTROL = "check-control";
149     static final String PLUG_CONNECTION = "plug-connection";
150     static final String CHARGE_STATUS = "charge";
151     static final String CHARGE_REMAINING = "charge-remaining";
152     static final String LAST_UPDATE = "last-update";
153     static final String LAST_FETCHED = "last-fetched";
154     static final String RAW = "raw";
155
156     // Door Details
157     static final String DOOR_DRIVER_FRONT = "driver-front";
158     static final String DOOR_DRIVER_REAR = "driver-rear";
159     static final String DOOR_PASSENGER_FRONT = "passenger-front";
160     static final String DOOR_PASSENGER_REAR = "passenger-rear";
161     static final String HOOD = "hood";
162     static final String TRUNK = "trunk";
163     static final String WINDOW_DOOR_DRIVER_FRONT = "win-driver-front";
164     static final String WINDOW_DOOR_DRIVER_REAR = "win-driver-rear";
165     static final String WINDOW_DOOR_PASSENGER_FRONT = "win-passenger-front";
166     static final String WINDOW_DOOR_PASSENGER_REAR = "win-passenger-rear";
167     static final String WINDOW_REAR = "win-rear";
168     static final String SUNROOF = "sunroof";
169
170     // Charge Profile
171     static final String CHARGE_PROFILE_CLIMATE = "climate";
172     static final String CHARGE_PROFILE_MODE = "mode";
173     static final String CHARGE_PROFILE_PREFERENCE = "prefs";
174     static final String CHARGE_PROFILE_CONTROL = "control";
175     static final String CHARGE_PROFILE_TARGET = "target";
176     static final String CHARGE_PROFILE_LIMIT = "limit";
177     static final String CHARGE_WINDOW_START = "window-start";
178     static final String CHARGE_WINDOW_END = "window-end";
179     static final String CHARGE_TIMER1 = "timer1";
180     static final String CHARGE_TIMER2 = "timer2";
181     static final String CHARGE_TIMER3 = "timer3";
182     static final String CHARGE_TIMER4 = "timer4";
183     static final String CHARGE_DEPARTURE = "-departure";
184     static final String CHARGE_ENABLED = "-enabled";
185     static final String CHARGE_DAY_MON = "-day-mon";
186     static final String CHARGE_DAY_TUE = "-day-tue";
187     static final String CHARGE_DAY_WED = "-day-wed";
188     static final String CHARGE_DAY_THU = "-day-thu";
189     static final String CHARGE_DAY_FRI = "-day-fri";
190     static final String CHARGE_DAY_SAT = "-day-sat";
191     static final String CHARGE_DAY_SUN = "-day-sun";
192
193     // Range
194     static final String RANGE_ELECTRIC = "electric";
195     static final String RANGE_RADIUS_ELECTRIC = "radius-electric";
196     static final String RANGE_FUEL = "fuel";
197     static final String RANGE_RADIUS_FUEL = "radius-fuel";
198     static final String RANGE_HYBRID = "hybrid";
199     static final String RANGE_RADIUS_HYBRID = "radius-hybrid";
200     static final String REMAINING_FUEL = "remaining-fuel";
201     static final String ESTIMATED_FUEL_L_100KM = "estimated-fuel-l-100km";
202     static final String ESTIMATED_FUEL_MPG = "estimated-fuel-mpg";
203     static final String SOC = "soc";
204
205     // Image
206     static final String IMAGE_FORMAT = "png";
207     static final String IMAGE_VIEWPORT = "view";
208
209     // Remote Services
210     static final String REMOTE_SERVICE_LIGHT_FLASH = "light-flash";
211     static final String REMOTE_SERVICE_VEHICLE_FINDER = "vehicle-finder";
212     static final String REMOTE_SERVICE_DOOR_LOCK = "door-lock";
213     static final String REMOTE_SERVICE_DOOR_UNLOCK = "door-unlock";
214     static final String REMOTE_SERVICE_HORN = "horn-blow";
215     static final String REMOTE_SERVICE_AIR_CONDITIONING_START = "climate-now-start";
216     static final String REMOTE_SERVICE_AIR_CONDITIONING_STOP = "climate-now-stop";
217     static final String REMOTE_SERVICE_CHARGE = "charge-now";
218
219     static final String REMOTE_SERVICE_COMMAND = "command";
220     static final String REMOTE_STATE = "state";
221
222     // TIRES
223     static final String FRONT_LEFT_CURRENT = "fl-current";
224     static final String FRONT_LEFT_TARGET = "fl-target";
225     static final String FRONT_RIGHT_CURRENT = "fr-current";
226     static final String FRONT_RIGHT_TARGET = "fr-target";
227     static final String REAR_LEFT_CURRENT = "rl-current";
228     static final String REAR_LEFT_TARGET = "rl-target";
229     static final String REAR_RIGHT_CURRENT = "rr-current";
230     static final String REAR_RIGHT_TARGET = "rr-target";
231 }