Skip to content

Commit c97e5ad

Browse files
committed
v2026.4.4
start/pause charging now via autonomic endpoints
1 parent 48aa4e7 commit c97e5ad

2 files changed

Lines changed: 35 additions & 12 deletions

File tree

custom_components/fordpass/fordpass_bridge.py

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1868,11 +1868,11 @@ async def req_remote_climate(self):
18681868

18691869
result_rcc = await response_rcc.json()
18701870

1871-
if self._remote_climate_control_forced:
1872-
try:
1873-
# check if there is a 'profile' in the result... and if not, we will create a default one!
1874-
a_profiles_obj = result_rcc.get("rccUserProfiles", [])
1875-
if a_profiles_obj is None or not isinstance(a_profiles_obj, Iterable) or len(a_profiles_obj) == 0:
1871+
try:
1872+
# check if there is a 'profile' in the result... and if not, we will create a default one!
1873+
a_profiles_obj = result_rcc.get("rccUserProfiles", [])
1874+
if a_profiles_obj is None or not isinstance(a_profiles_obj, Iterable) or len(a_profiles_obj) == 0:
1875+
if self._remote_climate_control_forced:
18761876
_LOGGER.info(f"{self.vli}req_remote_climate(): creating a default 'remote climate control' profile for the vehicle")
18771877
result_rcc["rccUserProfiles"] = [
18781878
{"preferenceType": "RccHeatedWindshield_Rq", "preferenceValue": "Off"},
@@ -1884,8 +1884,11 @@ async def req_remote_climate(self):
18841884
{"preferenceType": "RccRightRearClimateSeat_Rq", "preferenceValue": "Off"},
18851885
{"preferenceType": "SetPointTemp_Rq", "preferenceValue": "22_0"}
18861886
]
1887-
except BaseException as e:
1888-
_LOGGER.info(f"{self.vli}req_remote_climate(): Error while check for empty 'rccUserProfiles' for vehicle {self.vin} - {type(e).__name__} - {e}")
1887+
else:
1888+
_LOGGER.warning(f"{self.vli}req_remote_climate(): NO 'remote climate control' profile for the vehicle exits - please create one vie the FordPass App - TIA")
1889+
1890+
except BaseException as e:
1891+
_LOGGER.info(f"{self.vli}req_remote_climate(): Error while check for empty 'rccUserProfiles' for vehicle {self.vin} - {type(e).__name__} - {e}")
18891892

18901893
if self._LOCAL_LOGGING:
18911894
await self._local_logging("rcc", result_rcc)
@@ -2184,15 +2187,32 @@ def _get_command_object_ford(command_key, url_param_value):
21842187
async def start_charge(self):
21852188
# VALUE_CHARGE, CHARGE_NOW, CHARGE_DT, CHARGE_DT_COND, CHARGE_SOLD, HOME_CHARGE_NOW, HOME_STORE_CHARGE, HOME_CHARGE_DISCHARGE
21862189
# START_GLOBAL_CHARGE
2187-
return await self.__request_and_poll_command_ford(command_key=START_CHARGE_KEY)
2188-
2190+
# worked till 2026/04/20...
2191+
# return await self.__request_and_poll_command_ford(command_key=START_CHARGE_KEY)
2192+
return await self.__request_and_poll_command_autonomic(baseurl=AUTONOMIC_BETA_URL,
2193+
write_command="startGlobalChargeCommand",
2194+
properties=None,
2195+
data_version="1.0.1",
2196+
wait_for_state=True)
21892197
async def cancel_charge(self):
21902198
# CANCEL_GLOBAL_CHARGE
2191-
return await self.__request_and_poll_command_ford(command_key=CANCEL_CHARGE_KEY)
2199+
# worked till 2026/04/20...
2200+
# return await self.__request_and_poll_command_ford(command_key=CANCEL_CHARGE_KEY)
2201+
return await self.__request_and_poll_command_autonomic(baseurl=AUTONOMIC_BETA_URL,
2202+
write_command="cancelGlobalChargeCommand",
2203+
properties=None,
2204+
data_version="1.0.1",
2205+
wait_for_state=True)
21922206

21932207
async def pause_charge(self):
21942208
# PAUSE_GLOBAL_CHARGE
2195-
return await self.__request_and_poll_command_ford(command_key=PAUSE_CHARGE_KEY)
2209+
# worked till 2026/04/20...
2210+
# return await self.__request_and_poll_command_ford(command_key=PAUSE_CHARGE_KEY)
2211+
return await self.__request_and_poll_command_autonomic(baseurl=AUTONOMIC_BETA_URL,
2212+
write_command="pauseGlobalChargeCommand",
2213+
properties=None,
2214+
data_version="1.0.1",
2215+
wait_for_state=True)
21962216

21972217

21982218
# ***********************************************************
@@ -2658,6 +2678,9 @@ async def __request_and_poll_command_autonomic(self, baseurl, write_command, pro
26582678
"wakeUp": True
26592679
}
26602680

2681+
if properties == None:
2682+
data.pop("properties")
2683+
26612684
# currently only the beta autonomic endpoint supports/needs the version tag
26622685
if baseurl != AUTONOMIC_BETA_URL:
26632686
del data["version"]

custom_components/fordpass/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@
1212
"loggers": ["custom_components.fordpass"],
1313
"requirements": [],
1414
"ssdp": [],
15-
"version": "2026.4.3",
15+
"version": "2026.4.4",
1616
"zeroconf": []
1717
}

0 commit comments

Comments
 (0)