diff --git a/bundles/org.openhab.binding.mercedesme/README.md b/bundles/org.openhab.binding.mercedesme/README.md
index 3c8dd61e4f96f..964ac2c3d02c6 100644
--- a/bundles/org.openhab.binding.mercedesme/README.md
+++ b/bundles/org.openhab.binding.mercedesme/README.md
@@ -444,22 +444,23 @@ Group name: `range`
All channels read-only.
-| Channel | Type | Description | bev | hybrid | combustion |
-|------------------|----------------------|------------------------------|-----|--------|------------|
-| mileage | Number:Length | Total Mileage | X | X | X |
-| home-distance | Number:Length | Distance to Home | X | X | X |
-| soc | Number:Dimensionless | Battery State of Charge | X | X | |
-| charged | Number:Energy | Charged Battery Energy | X | X | |
-| uncharged | Number:Energy | Uncharged Battery Energy | X | X | |
-| range-electric | Number:Length | Electric Range | X | X | |
-| radius-electric | Number:Length | Electric Radius for Map | X | X | |
-| fuel-level | Number:Dimensionless | Fuel Level in Percent | | X | X |
-| fuel-remain | Number:Volume | Remaining Fuel | | X | X |
-| fuel-open | Number:Volume | Open Fuel Capacity | | X | X |
-| range-fuel | Number:Length | Fuel Range | | X | X |
-| radius-fuel | Number:Length | Fuel Radius for Map | | X | X |
-| range-hybrid | Number:Length | Hybrid Range | | X | |
-| radius-hybrid | Number:Length | Hybrid Radius for Map | | X | |
+| Channel | Type | Description | bev | hybrid | combustion |
+|------------------|----------------------|---------------------------------|-----|--------|------------|
+| mileage | Number:Length | Total Mileage | X | X | X |
+| home-distance | Number:Length | Distance to Home | X | X | X |
+| soc | Number:Dimensionless | Battery State of Charge | X | X | |
+| charged | Number:Energy | Charged Battery Energy | X | X | |
+| uncharged | Number:Energy | Uncharged Battery Energy | X | X | |
+| range-electric | Number:Length | Electric Range | X | X | |
+| radius-electric | Number:Length | Electric Radius for Map | X | X | |
+| fuel-level | Number:Dimensionless | Fuel Level in Percent | | X | X |
+| fuel-remain | Number:Volume | Remaining Fuel | | X | X |
+| fuel-open | Number:Volume | Open Fuel Capacity | | X | X |
+| range-fuel | Number:Length | Fuel Range | | X | X |
+| radius-fuel | Number:Length | Fuel Radius for Map | | X | X |
+| range-hybrid | Number:Length | Hybrid Range | | X | |
+| radius-hybrid | Number:Length | Hybrid Radius for Map | | X | |
+| adblue-level | Number:Dimensionless | AdBlue tank level in percent | | | X |
Channels with `radius` are just giving a _guess_ which radius can be reached in a map display.
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java
index 040026d8b1dfb..21d5f25b4f2e3 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java
+++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java
@@ -115,6 +115,7 @@ public class Constants {
public static final String MB_KEY_DOORSTATUSFRONTLEFT = "doorstatusfrontleft";
public static final String MB_KEY_DOORSTATUSFRONTRIGHT = "doorstatusfrontright";
public static final String MB_KEY_TANKLEVELPERCENT = "tanklevelpercent";
+ public static final String MB_KEY_ADBLUELEVELPERCENT = "tankLevelAdBlue";
public static final String MB_KEY_SOC = "soc";
public static final String MB_KEY_TIRE_PRESS_MEAS_TIMESTAMP = "tirePressMeasTimestamp";
public static final String MB_KEY_ENDOFCHARGETIME = "endofchargetime";
@@ -201,6 +202,7 @@ public class Constants {
public static final String OH_CHANNEL_COUPLER_AC = "coupler-ac";
public static final String OH_CHANNEL_CHARGE_FLAP = "charge-flap";
public static final String OH_CHANNEL_FUEL_LEVEL = "fuel-level";
+ public static final String OH_CHANNEL_ADBLUE_LEVEL = "adblue-level";
public static final String OH_CHANNEL_RANGE_HYBRID = "range-hybrid";
public static final String OH_CHANNEL_RANGE_FUEL = "range-fuel";
public static final String OH_CHANNEL_RANGE_ELECTRIC = "range-electric";
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java
index 4716708ea37bd..40afa829c54e6 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java
+++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java
@@ -112,6 +112,7 @@
*
* @author Bernd Weymann - Initial contribution
* @author Bernd Weymann - Bugfix https://github.com/openhab/openhab-addons/issues/16932
+ * @author Bernd Weymann - Added adblue-channel https://community.openhab.org/t/mercedes-me-binding/136852/239
*/
@NonNullByDefault
public class VehicleHandler extends BaseThingHandler {
@@ -709,6 +710,11 @@ public void distributeContent(VEPUpdate data) {
block = true;
}
break;
+ case OH_CHANNEL_ADBLUE_LEVEL:
+ if (!Constants.COMBUSTION.equals(vehicleType)) {
+ block = true;
+ }
+ break;
case OH_CHANNEL_COOLANT_FLUID:
case OH_CHANNEL_ENGINE:
case OH_CHANNEL_GAS_FLAP:
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java
index 4a8ff1127431f..ff31e444e6663 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java
+++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java
@@ -197,6 +197,7 @@ public static ChannelStateMap getChannelStateMap(String key, VehicleAttributeSta
// Percentages
case MB_KEY_SOC:
case MB_KEY_TANKLEVELPERCENT:
+ case MB_KEY_ADBLUELEVELPERCENT:
case MB_KEY_ECOSCORE_ACCEL:
case MB_KEY_ECOSCORE_CONSTANT:
case MB_KEY_ECOSCORE_COASTING:
@@ -404,6 +405,7 @@ private static void init() {
CHANNELS.put(MB_KEY_RANGELIQUID, new String[] { OH_CHANNEL_RANGE_FUEL, GROUP_RANGE });
CHANNELS.put(MB_KEY_OVERALL_RANGE, new String[] { OH_CHANNEL_RANGE_HYBRID, GROUP_RANGE });
CHANNELS.put(MB_KEY_TANKLEVELPERCENT, new String[] { OH_CHANNEL_FUEL_LEVEL, GROUP_RANGE });
+ CHANNELS.put(MB_KEY_ADBLUELEVELPERCENT, new String[] { OH_CHANNEL_ADBLUE_LEVEL, GROUP_RANGE });
CHANNELS.put(MB_KEY_CHARGE_FLAP_DC_STATUS, new String[] { OH_CHANNEL_CHARGE_FLAP, GROUP_CHARGE });
CHANNELS.put(MB_KEY_CHARGE_COUPLER_AC_STATUS, new String[] { OH_CHANNEL_COUPLER_AC, GROUP_CHARGE });
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties
index e3638f30acfd8..a18833ea11b69 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties
+++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties
@@ -91,6 +91,8 @@ channel-type.mercedesme.accel.description = Score for smooth acceleration
channel-type.mercedesme.active-hvac.label = AC Precondition Control
channel-type.mercedesme.active-hvac.description = Switch on/off precondition air conditioning
channel-type.mercedesme.active.label = Charge Active
+channel-type.mercedesme.adblue-level.label = AdBlue Level
+channel-type.mercedesme.adblue-level.description = AdBlue tank level in percent
channel-type.mercedesme.auto-unlock.label = Coupler Auto Unlock
channel-type.mercedesme.auto-unlock.description = Auto unlock coupler after charging
channel-type.mercedesme.aux-heat.label = Auxiliary Heating Control
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml
index 8861216318cd3..23de7f0c76f98 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml
+++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml
@@ -53,6 +53,12 @@
+
+ Number:Dimensionless
+
+ AdBlue tank level in percent
+
+
Number:Volume
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml
index 665c91e5a19fa..1a3d05c2ba07f 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml
+++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml
@@ -14,6 +14,7 @@
+
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml
index dbfe23533d5ef..4da711511080c 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml
+++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml
@@ -28,7 +28,7 @@
- 2
+ 3
diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/update/instructions.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/update/instructions.xml
index f95be9a969dd6..3c35c7ea32e31 100644
--- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/update/instructions.xml
+++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/update/instructions.xml
@@ -214,6 +214,13 @@
+
+
+ mercedesme:adblue-level
+
+ AdBlue tank level in percent
+
+
diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java
index 92e5f009c0de5..8675b4d0ac43a 100644
--- a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java
+++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java
@@ -81,6 +81,25 @@ public static Map createBEV() {
return instances;
}
+ public static Map createCombustion() {
+ Thing thingMock = mock(Thing.class);
+ when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_COMB);
+ when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.COMBUSTION));
+ AccountHandlerMock ahm = new AccountHandlerMock();
+ VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(),
+ mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class));
+ vh.accountHandler = Optional.of(ahm);
+ VehicleConfiguration vehicleConfig = new VehicleConfiguration();
+ vh.config = Optional.of(vehicleConfig);
+ ThingCallbackListener updateListener = new ThingCallbackListener();
+ vh.setCallback(updateListener);
+ Map instances = new HashMap<>();
+ instances.put(ThingCallbackListener.class.getCanonicalName(), updateListener);
+ instances.put(VehicleHandler.class.getCanonicalName(), vh);
+ instances.put(AccountHandlerMock.class.getCanonicalName(), ahm);
+ return instances;
+ }
+
@Test
public void testBEVFullUpdateNoCapacities() {
Thing thingMock = mock(Thing.class);
@@ -616,4 +635,21 @@ public void testEcoScore() {
assertEquals("10.2 km", updateListener.getResponse("test::bev:eco#bonus").toFullString(), "Eco Bonus");
assertEquals(ECOSCORE_UPDATE_COUNT, updateListener.getUpdatesForGroup("eco"), "ECO Update Count");
}
+
+ @Test
+ public void testAdBlue() {
+ Map instances = createCombustion();
+ ThingCallbackListener updateListener = (ThingCallbackListener) instances
+ .get(ThingCallbackListener.class.getCanonicalName());
+ VehicleHandler vHandler = (VehicleHandler) instances.get(VehicleHandler.class.getCanonicalName());
+ assertNotNull(updateListener);
+ assertNotNull(vHandler);
+
+ String json = FileReader.readFileInString("src/test/resources/proto-json/MB-Combustion.json");
+ VEPUpdate update = ProtoConverter.json2Proto(json, true);
+ vHandler.distributeContent(update);
+
+ assertEquals("29 %", updateListener.getResponse("test::combustion:range#adblue-level").toFullString(),
+ "AdBlue Tank Level");
+ }
}
diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Combustion.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Combustion.json
new file mode 100644
index 0000000000000..42f96df44707c
--- /dev/null
+++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Combustion.json
@@ -0,0 +1,960 @@
+{
+ "minSocUpperLimit": {
+ "timestamp_in_ms": 1676018786000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "bidirectionalChargingActive": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "chargeCouplerACStatus": {
+ "timestamp_in_ms": 1695360357000,
+ "nil_value": true,
+ "timestamp": 1695360357,
+ "status": 4
+ },
+ "doorLockStatusOverall": {
+ "timestamp_in_ms": 1695363305000,
+ "timestamp": 1695363305,
+ "int_value": 0
+ },
+ "precondSeatFrontRight": {
+ "timestamp_in_ms": 1683554139000,
+ "bool_value": false,
+ "timestamp": 1683554139
+ },
+ "evRangeAssistDriveOnSOC": {
+ "timestamp_in_ms": 1695363339000,
+ "timestamp": 1695363339,
+ "int_value": 100
+ },
+ "tirePressMeasTimestamp": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 1695363279
+ },
+ "drivenTimeStart": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "smartCharging": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "vehicleHealthStatus": {
+ "timestamp_in_ms": 1676018790747,
+ "nil_value": true,
+ "timestamp": 1676018790,
+ "status": 1
+ },
+ "doorlockstatusdecklid": {
+ "timestamp_in_ms": 1695363305000,
+ "bool_value": false,
+ "timestamp": 1695363305
+ },
+ "maxSoc": {
+ "display_value": "100",
+ "timestamp_in_ms": 1683122498000,
+ "ratio_unit": "PERCENT",
+ "timestamp": 1683122498,
+ "int_value": 100
+ },
+ "socprofile": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 1
+ },
+ "maxrange": {
+ "display_value": "460.0",
+ "timestamp_in_ms": 1695363358000,
+ "distance_unit": "KILOMETERS",
+ "timestamp": 1695363358,
+ "int_value": 460
+ },
+ "maxSocLowerLimit": {
+ "timestamp_in_ms": 1676018786000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "weeklyProfile": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "liquidRangeSkipIndication": {
+ "timestamp_in_ms": 1695363279000,
+ "nil_value": true,
+ "timestamp": 1695363279,
+ "status": 4
+ },
+ "chargeCouplerDCStatus": {
+ "timestamp_in_ms": 1695360357000,
+ "nil_value": true,
+ "timestamp": 1695360357,
+ "status": 4
+ },
+ "doorlockstatusfrontright": {
+ "timestamp_in_ms": 1695363305000,
+ "bool_value": false,
+ "timestamp": 1695363305
+ },
+ "tirepressureRearRight": {
+ "display_value": "235",
+ "timestamp_in_ms": 1695362858000,
+ "pressure_unit": "KPA",
+ "double_value": 235,
+ "timestamp": 1695362858
+ },
+ "languageHU": {
+ "timestamp_in_ms": 1695360349000,
+ "timestamp": 1695360349,
+ "int_value": 1
+ },
+ "tireMarkerRearLeft": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "vehiclePositionErrorCode": {
+ "timestamp_in_ms": 1695364874926,
+ "timestamp": 1695364874,
+ "int_value": 5
+ },
+ "distanceElectricalStart": {
+ "display_value": "20.5",
+ "timestamp_in_ms": 1695363251000,
+ "distance_unit": "KILOMETERS",
+ "double_value": 20.5,
+ "timestamp": 1695363251
+ },
+ "departureTimeMode": {
+ "timestamp_in_ms": 1683556799000,
+ "timestamp": 1683556799,
+ "int_value": 0
+ },
+ "parkbrakestatus": {
+ "timestamp_in_ms": 1695363287000,
+ "bool_value": true,
+ "timestamp": 1695363287
+ },
+ "gasTankLevel": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "starterBatteryState": {
+ "timestamp_in_ms": 1695364875052,
+ "nil_value": true,
+ "timestamp": 1695364875,
+ "status": 4
+ },
+ "precondNowError": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "windowStatusOverall": {
+ "timestamp_in_ms": 1695363249000,
+ "timestamp": 1695363249,
+ "int_value": 1
+ },
+ "tireSensorAvailable": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "weeklySetHU": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "minSoc": {
+ "timestamp_in_ms": 1676018786000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "rangeelectric": {
+ "display_value": "210",
+ "timestamp_in_ms": 1695363358000,
+ "distance_unit": "KILOMETERS",
+ "timestamp": 1695363358,
+ "int_value": 210
+ },
+ "tireMarkerRearRight": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "windowstatusrearright": {
+ "timestamp_in_ms": 1679655918000,
+ "nil_value": true,
+ "timestamp": 1679655918,
+ "status": 4
+ },
+ "serviceintervaldays": {
+ "timestamp_in_ms": 1695326557000,
+ "timestamp": 1695326557,
+ "int_value": 139
+ },
+ "electricalRangeSkipIndication": {
+ "timestamp_in_ms": 1695363279000,
+ "bool_value": false,
+ "timestamp": 1695363279
+ },
+ "windowstatusrearleft": {
+ "timestamp_in_ms": 1679655918000,
+ "nil_value": true,
+ "timestamp": 1679655918,
+ "status": 4
+ },
+ "endofchargetime": {
+ "timestamp_in_ms": 1695327666000,
+ "clock_hour_unit": "T12H",
+ "nil_value": true,
+ "timestamp": 1695327666,
+ "status": 3
+ },
+ "hybridWarnings": {
+ "timestamp_in_ms": 1676018790747,
+ "nil_value": true,
+ "timestamp": 1676018790,
+ "status": 1
+ },
+ "positionHeading": {
+ "timestamp_in_ms": 1695363286000,
+ "double_value": 13.1,
+ "timestamp": 1695363286
+ },
+ "precondAtDepartureDisable": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "doorstatusrearleft": {
+ "timestamp_in_ms": 1695360694000,
+ "bool_value": false,
+ "timestamp": 1695360694
+ },
+ "odo": {
+ "display_value": "12757",
+ "timestamp_in_ms": 1695363219000,
+ "distance_unit": "KILOMETERS",
+ "timestamp": 1695363219,
+ "int_value": 12757
+ },
+ "evRangeAssistDriveOnTime": {
+ "timestamp_in_ms": 1692503910000,
+ "nil_value": true,
+ "timestamp": 1692503910,
+ "status": 3
+ },
+ "tirewarninglamp": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "positionLong": {
+ "timestamp_in_ms": 1695363286000,
+ "double_value": 1.23,
+ "timestamp": 1695363286
+ },
+ "precondDuration": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "electricconsumptionreset": {
+ "display_value": "4.3",
+ "timestamp_in_ms": 1695363338000,
+ "electricity_consumption_unit": "KM_PER_KWH",
+ "double_value": 23.5,
+ "timestamp": 1695363338
+ },
+ "precondatdeparture": {
+ "timestamp_in_ms": 1679655918000,
+ "bool_value": true,
+ "timestamp": 1679655918
+ },
+ "flipWindowStatus": {
+ "timestamp_in_ms": 1694419017000,
+ "bool_value": false,
+ "timestamp": 1694419017
+ },
+ "temperatureUnitHU": {
+ "timestamp_in_ms": 1679655918000,
+ "bool_value": false,
+ "timestamp": 1679655918
+ },
+ "departureTimeWeekday": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "averageSpeedReset": {
+ "timestamp_in_ms": 1676018786000,
+ "speed_unit": "KM_PER_HOUR",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "ecoscoreconst": {
+ "display_value": "85",
+ "timestamp_in_ms": 1695363338000,
+ "ratio_unit": "PERCENT",
+ "timestamp": 1695363338,
+ "int_value": 85
+ },
+ "doorstatusfrontright": {
+ "timestamp_in_ms": 1695311302000,
+ "bool_value": false,
+ "timestamp": 1695311302
+ },
+ "tcuConnectionStateLowChannel": {
+ "timestamp_in_ms": 1695364588641,
+ "timestamp": 1695364588
+ },
+ "chargingstatus": {
+ "timestamp_in_ms": 1695363339000,
+ "timestamp": 1695363339,
+ "int_value": 3
+ },
+ "ecoscoretotal": {
+ "timestamp_in_ms": 1695363338000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1695363338,
+ "status": 4
+ },
+ "doorstatusfrontleft": {
+ "timestamp_in_ms": 1695363301000,
+ "bool_value": false,
+ "timestamp": 1695363301
+ },
+ "electricRatioOverall": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "warningbrakeliningwear": {
+ "timestamp_in_ms": 1695363279000,
+ "bool_value": false,
+ "timestamp": 1695363279
+ },
+ "distanceZEStart": {
+ "timestamp_in_ms": 1676018786000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "doorlockstatusgas": {
+ "timestamp_in_ms": 1679655918000,
+ "nil_value": true,
+ "timestamp": 1679655918,
+ "status": 3
+ },
+ "engineHoodStatus": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "doorstatusrearright": {
+ "timestamp_in_ms": 1695362381000,
+ "bool_value": false,
+ "timestamp": 1695362381
+ },
+ "tirewarningsrdk": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "precondNow": {
+ "timestamp_in_ms": 1683557132000,
+ "nil_value": true,
+ "timestamp": 1683557132,
+ "status": 4
+ },
+ "rangeliquid": {
+ "timestamp_in_ms": 1676018786000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "sunroofEventActive": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "chargingPower": {
+ "timestamp_in_ms": 1695363358000,
+ "double_value": 0,
+ "timestamp": 1695363358
+ },
+ "averageSpeedStart": {
+ "timestamp_in_ms": 1676018786000,
+ "speed_unit": "KM_PER_HOUR",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "drivenTimeReset": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "positionLat": {
+ "timestamp_in_ms": 1695363286000,
+ "double_value": 3.45,
+ "timestamp": 1695363286
+ },
+ "gasconsumptionstart": {
+ "timestamp_in_ms": 1676018786000,
+ "gas_consumption_unit": "KG_PER_100KM",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "vehicleLockState": {
+ "timestamp_in_ms": 1695363305000,
+ "timestamp": 1695363305,
+ "int_value": 2
+ },
+ "windowStatusRearRightBlind": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "gasTankRange": {
+ "timestamp_in_ms": 1676018786000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "ecoscorefreewhl": {
+ "display_value": "100",
+ "timestamp_in_ms": 1695360888000,
+ "ratio_unit": "PERCENT",
+ "timestamp": 1695360888,
+ "int_value": 100
+ },
+ "doorlockstatusrearright": {
+ "timestamp_in_ms": 1695363305000,
+ "bool_value": false,
+ "timestamp": 1695363305
+ },
+ "chargingPowerEcoLimit": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "distanceStart": {
+ "display_value": "20.5",
+ "timestamp_in_ms": 1695363251000,
+ "distance_unit": "KILOMETERS",
+ "double_value": 20.5,
+ "timestamp": 1695363251
+ },
+ "soc": {
+ "display_value": "46",
+ "timestamp_in_ms": 1695363339000,
+ "ratio_unit": "PERCENT",
+ "timestamp": 1695363339,
+ "int_value": 46
+ },
+ "gasconsumptionreset": {
+ "timestamp_in_ms": 1676018786000,
+ "gas_consumption_unit": "KG_PER_100KM",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "distanceReset": {
+ "display_value": "12748.1",
+ "timestamp_in_ms": 1695363216000,
+ "distance_unit": "KILOMETERS",
+ "double_value": 12748.1,
+ "timestamp": 1695363216
+ },
+ "sunroofStatusFrontBlind": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "windowstatusfrontleft": {
+ "timestamp_in_ms": 1695363249000,
+ "timestamp": 1695363249,
+ "int_value": 2
+ },
+ "speedUnitFromIC": {
+ "timestamp_in_ms": 1676018790747,
+ "nil_value": true,
+ "timestamp": 1676018790,
+ "status": 1
+ },
+ "windowStatusRearLeftBlind": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "doorlockstatusvehicle": {
+ "timestamp_in_ms": 1695363305000,
+ "timestamp": 1695363305,
+ "int_value": 2
+ },
+ "tankLevelAdBlue": {
+ "display_value": "29",
+ "timestamp_in_ms": 1731353728000,
+ "ratio_unit": "PERCENT",
+ "timestamp": 1731353728,
+ "int_value": 29
+ },
+ "tirepressureRearLeft": {
+ "display_value": "230",
+ "timestamp_in_ms": 1695363220000,
+ "pressure_unit": "KPA",
+ "double_value": 232.5,
+ "timestamp": 1695363220
+ },
+ "timeFormatHU": {
+ "timestamp_in_ms": 1679655918000,
+ "bool_value": true,
+ "timestamp": 1679655918
+ },
+ "liquidconsumptionstart": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "combustion_consumption_unit": "LITER_PER_100KM",
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "distanceGasReset": {
+ "timestamp_in_ms": 1676018786000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "temperaturePoints": {
+ "temperature_points_value": {
+ "temperature_points": [
+ {
+ "temperature": 22,
+ "zone": "frontLeft",
+ "temperature_display_value": "22.0"
+ },
+ {
+ "temperature": 19,
+ "zone": "frontRight",
+ "temperature_display_value": "19.0"
+ }
+ ]
+ },
+ "timestamp_in_ms": 1695363358000,
+ "temperature_unit": "CELSIUS",
+ "timestamp": 1695363358
+ },
+ "departuretimesoc": {
+ "timestamp_in_ms": 1695363358000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1695363358,
+ "status": 3
+ },
+ "selectedChargeProgram": {
+ "timestamp_in_ms": 1692508055000,
+ "timestamp": 1692508055,
+ "int_value": 0
+ },
+ "chargePrograms": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "distanceZEReset": {
+ "timestamp_in_ms": 1676018786000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "maxSocUpperLimit": {
+ "timestamp_in_ms": 1676018786000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "tiremarker": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "overallRange": {
+ "display_value": "210",
+ "timestamp_in_ms": 1695363358000,
+ "distance_unit": "KILOMETERS",
+ "double_value": 210,
+ "timestamp": 1695363358
+ },
+ "tirewarningsprw": {
+ "timestamp_in_ms": 1695363279000,
+ "nil_value": true,
+ "timestamp": 1695363279,
+ "status": 4
+ },
+ "precondSeatFrontLeft": {
+ "timestamp_in_ms": 1679655918000,
+ "bool_value": true,
+ "timestamp": 1679655918
+ },
+ "drivenTimeZEReset": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "tireMarkerFrontRight": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "serviceintervaldistance": {
+ "timestamp_in_ms": 1695363288000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1695363288,
+ "status": 3
+ },
+ "precondActive": {
+ "timestamp_in_ms": 1683557132000,
+ "bool_value": false,
+ "timestamp": 1683557132
+ },
+ "ecoscorebonusrange": {
+ "display_value": "5.1",
+ "timestamp_in_ms": 1695363192000,
+ "distance_unit": "KILOMETERS",
+ "double_value": 5.1,
+ "timestamp": 1695363192
+ },
+ "precondState": {
+ "timestamp_in_ms": 1686111361000,
+ "timestamp": 1686111361
+ },
+ "distanceGasStart": {
+ "timestamp_in_ms": 1676018786000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "rangeAdBlue": {
+ "timestamp_in_ms": 1692592687000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1692592687,
+ "status": 4
+ },
+ "sunroofEvent": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "liquidconsumptionreset": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "combustion_consumption_unit": "LITER_PER_100KM",
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "warningbrakefluid": {
+ "timestamp_in_ms": 1695363279000,
+ "bool_value": false,
+ "timestamp": 1695363279
+ },
+ "hvBatteryThermalPropagationEvent": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "windowstatusfrontright": {
+ "timestamp_in_ms": 1695311329000,
+ "timestamp": 1695311329,
+ "int_value": 2
+ },
+ "electricconsumptionstart": {
+ "display_value": "5.3",
+ "timestamp_in_ms": 1695363284000,
+ "electricity_consumption_unit": "KM_PER_KWH",
+ "double_value": 18.7,
+ "timestamp": 1695363284
+ },
+ "trackingStateHU": {
+ "timestamp_in_ms": 1679655925000,
+ "bool_value": true,
+ "timestamp": 1679655925
+ },
+ "warningenginelight": {
+ "timestamp_in_ms": 1676018790747,
+ "nil_value": true,
+ "timestamp": 1676018790,
+ "status": 1
+ },
+ "ignitionstate": {
+ "timestamp_in_ms": 1695363287000,
+ "timestamp": 1695363287,
+ "int_value": 0
+ },
+ "precondSeatRearLeft": {
+ "timestamp_in_ms": 1683554139000,
+ "nil_value": true,
+ "timestamp": 1683554139,
+ "status": 4
+ },
+ "rooftopstatus": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "electricRatioReset": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "warningwashwater": {
+ "timestamp_in_ms": 1695363279000,
+ "bool_value": false,
+ "timestamp": 1695363279
+ },
+ "sunroofstatus": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "minSocLowerLimit": {
+ "timestamp_in_ms": 1676018786000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "filterParticleLoading": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "tirepressureFrontRight": {
+ "display_value": "250",
+ "timestamp_in_ms": 1695363155000,
+ "pressure_unit": "KPA",
+ "double_value": 252.5,
+ "timestamp": 1695363155
+ },
+ "precondSeatRearRight": {
+ "timestamp_in_ms": 1683554139000,
+ "nil_value": true,
+ "timestamp": 1683554139,
+ "status": 4
+ },
+ "tirepressureFrontLeft": {
+ "display_value": "255",
+ "timestamp_in_ms": 1695363060000,
+ "pressure_unit": "KPA",
+ "double_value": 257.5,
+ "timestamp": 1695363060
+ },
+ "proximityCalculationForVehiclePositionRequired": {
+ "timestamp_in_ms": 1695364874926,
+ "bool_value": false,
+ "timestamp": 1695364874
+ },
+ "chargingactive": {
+ "timestamp_in_ms": 1695327666000,
+ "bool_value": false,
+ "timestamp": 1695327666
+ },
+ "gasTankLevelPercent": {
+ "timestamp_in_ms": 1676018786000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "remoteStartTemperature": {
+ "display_value": "25.0",
+ "timestamp_in_ms": 1695363279000,
+ "temperature_unit": "CELSIUS",
+ "double_value": 25,
+ "timestamp": 1695363279
+ },
+ "vehicleDataConnectionState": {
+ "timestamp_in_ms": 1695364588641,
+ "bool_value": false,
+ "timestamp": 1695364588
+ },
+ "windowStatusRearBlind": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "endofChargeTimeWeekday": {
+ "timestamp_in_ms": 1695327666000,
+ "nil_value": true,
+ "timestamp": 1695327666,
+ "status": 3
+ },
+ "warningcoolantlevellow": {
+ "timestamp_in_ms": 1695363279000,
+ "bool_value": false,
+ "timestamp": 1695363279
+ },
+ "doorStatusOverall": {
+ "timestamp_in_ms": 1695363301000,
+ "timestamp": 1695363301,
+ "int_value": 1
+ },
+ "drivenTimeZEStart": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "ecoscoreaccel": {
+ "display_value": "100",
+ "timestamp_in_ms": 1695362014000,
+ "ratio_unit": "PERCENT",
+ "timestamp": 1695362014,
+ "int_value": 100
+ },
+ "sunroofStatusRearBlind": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "departuretime": {
+ "timestamp_in_ms": 1695363338000,
+ "clock_hour_unit": "T12H",
+ "timestamp": 1695363338,
+ "int_value": -1
+ },
+ "decklidstatus": {
+ "timestamp_in_ms": 1695185896000,
+ "bool_value": false,
+ "timestamp": 1695185896
+ },
+ "doorlockstatusfrontleft": {
+ "timestamp_in_ms": 1695363305000,
+ "bool_value": false,
+ "timestamp": 1695363305
+ },
+ "rangeElectricWltp": {
+ "timestamp_in_ms": 1676018786000,
+ "distance_unit": "KILOMETERS",
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "chargeFlapDCStatus": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "tireWarningLevelPrw": {
+ "timestamp_in_ms": 1695363279000,
+ "nil_value": true,
+ "timestamp": 1695363279,
+ "status": 4
+ },
+ "tanklevelpercent": {
+ "timestamp_in_ms": 1695363279000,
+ "ratio_unit": "PERCENT",
+ "nil_value": true,
+ "timestamp": 1695363279,
+ "status": 4
+ },
+ "chargeCouplerDCLockStatus": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "doorlockstatusrearleft": {
+ "timestamp_in_ms": 1695363305000,
+ "bool_value": false,
+ "timestamp": 1695363305
+ },
+ "electricRatioStart": {
+ "timestamp_in_ms": 1676018786000,
+ "nil_value": true,
+ "timestamp": 1676018786,
+ "status": 4
+ },
+ "precondError": {
+ "timestamp_in_ms": 1679655918000,
+ "timestamp": 1679655918,
+ "int_value": 0
+ },
+ "chargingErrorDetails": {
+ "timestamp_in_ms": 1679655918000,
+ "timestamp": 1679655918,
+ "int_value": 0
+ },
+ "vtime": {
+ "timestamp_in_ms": 1695363367000,
+ "timestamp": 1695363367,
+ "int_value": 1695370564
+ },
+ "tireMarkerFrontLeft": {
+ "timestamp_in_ms": 1695363279000,
+ "timestamp": 1695363279,
+ "int_value": 0
+ },
+ "distanceElectricalReset": {
+ "display_value": "12748.1",
+ "timestamp_in_ms": 1695363216000,
+ "distance_unit": "KILOMETERS",
+ "double_value": 12748.1,
+ "timestamp": 1695363216
+ }
+}