]> git.basschouten.com Git - openhab-addons.git/blob
33664482b4e5a92108532157940823327cc48ade
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 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 = 60;
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_UPDATE = "update";
111     static final String CHANNEL_GROUP_STATUS = "status";
112     static final String CHANNEL_GROUP_SERVICE = "service";
113     static final String CHANNEL_GROUP_CHECK_CONTROL = "check";
114     static final String CHANNEL_GROUP_DOORS = "doors";
115     static final String CHANNEL_GROUP_RANGE = "range";
116     static final String CHANNEL_GROUP_LOCATION = "location";
117     static final String CHANNEL_GROUP_REMOTE = "remote";
118     static final String CHANNEL_GROUP_CHARGE_PROFILE = "profile";
119     static final String CHANNEL_GROUP_CHARGE_STATISTICS = "statistic";
120     static final String CHANNEL_GROUP_CHARGE_SESSION = "session";
121     static final String CHANNEL_GROUP_TIRES = "tires";
122     static final String CHANNEL_GROUP_VEHICLE_IMAGE = "image";
123
124     // types of updates
125     static final String STATE_UPDATE = "state-update";
126     static final String CHARGING_UPDATE = "charging-update";
127     static final String IMAGE_UPDATE = "image-update";
128
129     // Charge Statistics & Sessions
130     static final String SESSIONS = "sessions";
131     static final String ENERGY = "energy";
132     static final String TITLE = "title";
133     static final String SUBTITLE = "subtitle";
134     static final String ISSUE = "issue";
135     static final String STATUS = "status";
136
137     // Generic Constants for several groups
138     static final String NAME = "name";
139     static final String DETAILS = "details";
140     static final String SEVERITY = "severity";
141     static final String DATE = "date";
142     static final String MILEAGE = "mileage";
143     static final String GPS = "gps";
144     static final String HEADING = "heading";
145     static final String ADDRESS = "address";
146     static final String HOME_DISTANCE = "home-distance";
147
148     // Status
149     static final String DOORS = "doors";
150     static final String WINDOWS = "windows";
151     static final String LOCK = "lock";
152     static final String SERVICE_DATE = "service-date";
153     static final String SERVICE_MILEAGE = "service-mileage";
154     static final String CHECK_CONTROL = "check-control";
155     static final String PLUG_CONNECTION = "plug-connection";
156     static final String CHARGE_STATUS = "charge";
157     static final String CHARGE_REMAINING = "charge-remaining";
158     static final String LAST_UPDATE = "last-update";
159     static final String LAST_FETCHED = "last-fetched";
160     static final String RAW = "raw";
161
162     // Door Details
163     static final String DOOR_DRIVER_FRONT = "driver-front";
164     static final String DOOR_DRIVER_REAR = "driver-rear";
165     static final String DOOR_PASSENGER_FRONT = "passenger-front";
166     static final String DOOR_PASSENGER_REAR = "passenger-rear";
167     static final String HOOD = "hood";
168     static final String TRUNK = "trunk";
169     static final String WINDOW_DOOR_DRIVER_FRONT = "win-driver-front";
170     static final String WINDOW_DOOR_DRIVER_REAR = "win-driver-rear";
171     static final String WINDOW_DOOR_PASSENGER_FRONT = "win-passenger-front";
172     static final String WINDOW_DOOR_PASSENGER_REAR = "win-passenger-rear";
173     static final String WINDOW_REAR = "win-rear";
174     static final String SUNROOF = "sunroof";
175
176     // Charge Profile
177     static final String CHARGE_PROFILE_CLIMATE = "climate";
178     static final String CHARGE_PROFILE_MODE = "mode";
179     static final String CHARGE_PROFILE_PREFERENCE = "prefs";
180     static final String CHARGE_PROFILE_CONTROL = "control";
181     static final String CHARGE_PROFILE_TARGET = "target";
182     static final String CHARGE_PROFILE_LIMIT = "limit";
183     static final String CHARGE_WINDOW_START = "window-start";
184     static final String CHARGE_WINDOW_END = "window-end";
185     static final String CHARGE_TIMER1 = "timer1";
186     static final String CHARGE_TIMER2 = "timer2";
187     static final String CHARGE_TIMER3 = "timer3";
188     static final String CHARGE_TIMER4 = "timer4";
189     static final String CHARGE_DEPARTURE = "-departure";
190     static final String CHARGE_ENABLED = "-enabled";
191     static final String CHARGE_DAY_MON = "-day-mon";
192     static final String CHARGE_DAY_TUE = "-day-tue";
193     static final String CHARGE_DAY_WED = "-day-wed";
194     static final String CHARGE_DAY_THU = "-day-thu";
195     static final String CHARGE_DAY_FRI = "-day-fri";
196     static final String CHARGE_DAY_SAT = "-day-sat";
197     static final String CHARGE_DAY_SUN = "-day-sun";
198
199     // Range
200     static final String RANGE_ELECTRIC = "electric";
201     static final String RANGE_RADIUS_ELECTRIC = "radius-electric";
202     static final String RANGE_FUEL = "fuel";
203     static final String RANGE_RADIUS_FUEL = "radius-fuel";
204     static final String RANGE_HYBRID = "hybrid";
205     static final String RANGE_RADIUS_HYBRID = "radius-hybrid";
206     static final String REMAINING_FUEL = "remaining-fuel";
207     static final String ESTIMATED_FUEL_L_100KM = "estimated-fuel-l-100km";
208     static final String ESTIMATED_FUEL_MPG = "estimated-fuel-mpg";
209     static final String SOC = "soc";
210
211     // Image
212     static final String IMAGE_FORMAT = "png";
213     static final String IMAGE_VIEWPORT = "view";
214
215     // Remote Services
216     static final String REMOTE_SERVICE_LIGHT_FLASH = "light-flash";
217     static final String REMOTE_SERVICE_VEHICLE_FINDER = "vehicle-finder";
218     static final String REMOTE_SERVICE_DOOR_LOCK = "door-lock";
219     static final String REMOTE_SERVICE_DOOR_UNLOCK = "door-unlock";
220     static final String REMOTE_SERVICE_HORN = "horn-blow";
221     static final String REMOTE_SERVICE_AIR_CONDITIONING_START = "climate-now-start";
222     static final String REMOTE_SERVICE_AIR_CONDITIONING_STOP = "climate-now-stop";
223     static final String REMOTE_SERVICE_CHARGE = "charge-now";
224
225     static final String REMOTE_SERVICE_COMMAND = "command";
226     static final String REMOTE_STATE = "state";
227
228     // TIRES
229     static final String FRONT_LEFT_CURRENT = "fl-current";
230     static final String FRONT_LEFT_TARGET = "fl-target";
231     static final String FRONT_RIGHT_CURRENT = "fr-current";
232     static final String FRONT_RIGHT_TARGET = "fr-target";
233     static final String REAR_LEFT_CURRENT = "rl-current";
234     static final String REAR_LEFT_TARGET = "rl-target";
235     static final String REAR_RIGHT_CURRENT = "rr-current";
236     static final String REAR_RIGHT_TARGET = "rr-target";
237 }