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