Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional features #9

Open
Palmke opened this issue Sep 1, 2021 · 6 comments
Open

Additional features #9

Palmke opened this issue Sep 1, 2021 · 6 comments

Comments

@Palmke
Copy link

Palmke commented Sep 1, 2021

Hi, I found several commands that could be added to this module so it provides more features.

Software update status (no auth required):
https://www.servicescache.ford.com/api/Sync/v2/getInstallPackages?locale=[LOCALE]&vinCode=[VIN]&appType=sync
https://www.servicescache.ford.com/api/Sync/v2/getInstallPackages?locale=[LOCALE]&vinCode=[VIN]&appType=map
You can skip the second call (for map) when the first one responds with "mapInstalled":"No"

Capabilities:
https://api.mps.ford.com/api/capability/v1/vehicles/{vin}
Availability of the features below is subject to the flags result from the call above.
This also goes for the already implemented (UN)LOCK and START/STOP features.

The Guard Mode stuff seems to be not working. I always get 404.
I believe this is the renamed SecuriAlert feature (which was Guard Mode at first)
enableGuardMode:
PUT - v1/{vin}/session

disableGuardMode:
DELETE - v1/{vin}/session

getGuardModeStatus:
GET - v1/{vin}/session

Zone Lighting: https://www.youtube.com/watch?v=SI2BzcTso50
activateZoneLighting
PUT - /api/vehicles/{vin}/zonelightingactivation/
deactivateZoneLighting:
DELETE - /api/vehicles/{vin}/zonelightingactivation/
getZoneLightingRequestStatus:
GET - /api/vehicles/{vin}/zonelightingactivation/{commandId}/
getZoneRequestStatus:
GET - /api/vehicles/{vin}/zonelighting/{commandId}/
issueCabinUnlockCommand:
DELETE - vehicles/{vin}/unlockcabin
issueCargoUnlockCommand:
DELETE - vehicles/{vin}/unlockcargo/

issueLightsAndHornCommand:
PUT - vehicles/{vin}/panic/{paniconduration}
getLightsAndHornCommandStatus:
GET - vehicles/v2/{vin}/panic/{commandId}
Can also look into features like (I have no context about these):

batterythreshold (ChargeStatusService)
departuretimes (DepartureTimesService)
smartcharging (EvSmartChargingService)
tp (EvTripPlannerService)
geofence (GeofenceService)
journey-info (JourneyService)
triplogs (TripLogService)
getwifisettings (NgsdnVehicleService)
climate control? (RccProfileFiService)
roadsideassistancena (RSAService)
servicehistory (ServiceHistoryService)
wifi (WifiHotspotService)
publiccharging (ManageRfidService, ChargingSessionService, PncService, SharedAccessService)
startschedules (NgsdnVehicleService)
chargestations (ChargeLocationService)
@d-Rickyy-b
Copy link
Collaborator

Hi, and sorry for the late response. This looks cool. I just happen to have very little time at the moment. If you want to try, you can create a PR for this.
Otherwise I might look into it at some point in the future.

@Frederikbh
Copy link

@Palmke How did you find these endpoints?
I'm interested in extending this module with support for electric vehicles, but I don't know where to extract the endpoints from.

@Palmke
Copy link
Author

Palmke commented May 2, 2022

Hi Frederik, what I did was pull the Android APK from the web (apkmirror.com or so) and then decompiled it in Android Studio.

I think - it was a while ago - I looked for strings like /v1/, like the ones we can find in this repo already.
I found that Ford kindly annotated the endpoints in the app so you can then easily find all other endpoints by searching for that endpoint.
So this is without any body data for pushing data to Ford (charging schedule and such). I was looking if other endpoints existed :)

@Frederikbh
Copy link

Frederikbh commented May 2, 2022

Thank you - that works.
Did you try any of the post endpoints with body data?
Sending JSON doesn't seem to work.

EDIT: Never mind, I got it working.
I'll try to wrap some of the useful endpoints.

@Palmke
Copy link
Author

Palmke commented May 3, 2022

Cool, good to hear you have got it working. The guard mode feature might be one I'm interested in... In the past I got false alerts so I stopped using it. Maybe it's better now :-)

PS. Does that other repository on GitHub not have those missing features? The one repo that got linked in an issue here regarding the new authentication method?

@alexose
Copy link

alexose commented Dec 8, 2022

Just bought a FordPass enabled EV and thought about doing this myself. Thanks @Palmke for doing some of the work already!

It would be nice to compile a list of all known endpoints from the Android app. This'll be my first TODO once I get a chance to sit down and start hacking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants