Replies: 12 comments 15 replies
|
None of the current maintainers of the project own a Lexus vehicle. Since there is no official API, but everything takes place via reverse engineering and trial and error, it is rather unlikely that support for Lexus is to be expected in the near future. |
|
Hi, I have a (just purchased) Lexus in Australia. I can confirm that the Australian Toyota app and the Australian Lexus App look identical, have almost identical app IDs (e.g. com.au.lexus.oneapp and com.au.toyota.oneapp) and DNS calls (logged via my self hosted adguard home) look pretty similar: login.lexusdriverslogin.com.au and openidm.lexusdriverslogin.com.au vs openidm.lexusdriverslogin.com.au and openidm.toyotadriverslogin.com.au I am going to try to get this going for Australia if I can (it's a pity it's not monolithic, because it means I need to get the API working first before I can get HA working, and I am much better in HA than in python), and will report back, but, for at least Australia, I can report that the Lexus App and the Toyota app are identical. Same login, same functionality, same data (same image of a Lexus in the Toyota app), same nickname for the car set in the Lexus app shows up in the Toyota app). |
|
Partial Success, Partial Failure, for AU: Modifying the URLs in the python library threw up a CloudFront error: pytoyoda.exceptions.ToyotaLoginError: Authentication Failed. 403, <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
<BR clear="all">
<HR noshade size="1px">
<PRE>
Generated by cloudfront (CloudFront)
Request ID: <redacted>
</PRE>
<ADDRESS>
</ADDRESS>
</BODY></HTML>But disabling certificate pinning allowed me to capture the full login sequence - and I'm hopeful that the cloudfront error was due to differences in the paths Some of the URLs are slightly different - the key difference appears to be tmca vs tme in the paths, as well as the base site. I'm going to review the sequence and once I think I've worked out the differences I can't tell what the Euro sequence is, but I can probably guess, I'll update my fork and try the python library. |
|
I got a lot further: Fixed the URLs. Needed to swap Logged in successfully, but the The call to account ( But it looks very promising - at least for Australia - that both Lexus and Toyota can be supported. |
Firstly, have you tried installing and logging in to your vehicle with the Toyota Connect app? Does it work? In my region (Australia) both the Toyota and Lexus app both display the same data, and I can log into both. In fact, the login sets cookies for both: First thing to try is logging into the Toyota app, @Sx54A Here's the data for an NX450h+ {
"payload": {
"returnCode": "000000",
"positionInfo": {
"acquisitionDatetime": "2025-05-01T06:32:27Z",
"longitude": redacted
"latitude": redacted
},
"vehicleInfo": {
"acquisitionDatetime": "2025-05-01T06:31:58Z",
"remoteHvacInfo": {
"remoteHvacMode": 0,
"remoteHvacProhibitionSignal": 1,
"temperaturelevel": 31,
"settingTemperature": 22.5,
"blowerStatus": 0,
"frontDefoggerStatus": 0,
"rearDefoggerStatus": 0,
"frontSeatHeaterStatus": null,
"rearSeatHeaterStatus": null,
"steeringHeaterStatus": null,
"latestAcStartTime": null,
"temperatureDisplayFlag": null
},
"chargeInfo": {
"plugStatus": 45,
"plugInHistory": 41,
"remainingChargeTime": 65535,
"evTravelableDistance": 62.2,
"evTravelableDistanceSubtractionRate": 5,
"evDistanceAC": 59.1,
"evDistance": 62.2,
"evDistanceUnit": "km",
"chargeRemainingAmount": 99,
"chargeType": 15,
"chargeWeek": 0,
"chargeStartTime": "42:35",
"chargeEndTime": "42:35",
"connectorStatus": 2,
"batteryPowerSupplyPossibleTime": 16383,
"gasolinePowerSupplyPossibleTime": 1023,
"fuelGage": 100,
"fuelGageStatus": 1,
"gasolineTravelableDistance": 876,
"gasolineTravelableDistanceUnit": 1
},
"timerChargeInfo": null,
"maxNoOfChargeSchedules": null,
"solarPowerGenerationInfo": {
"solarInfoAvailable": null,
"solarCumulativeEvTravelableDistance": null,
"solarCumulativePowerGeneration": null,
"monthlySolarCumulativePowerGeneration": null
},
"odometerInformation": null,
"driveMonitorDisplayRange": null
}
},
"status": {
"messages": [
{
"responseCode": "ONE-RES-10000",
"description": "Success",
"detailedDescription": "Success"
}
]
},
"timestamp": "2025-05-01T09:33:38.948"
} |
|
I've successfully tested Lexus integration (Details here: #7 (comment)). How are we able to publish this within the main branch (also for Home Assistant - HA)? |
|
Hi all, I am new to setting up a HA dashboard, but love the functionality that this integration brings! I own a Lexus NX450+ (and have access to all other current models) and would be happy to support anyone here to get the Lexus integration over the line. Unfortunatly I am not very techy so would need some hand holding in order to help. Thanks for the cracking work - hopefully I can help. Cheers |
|
Same for me - I am a little bit techie, but I am awaiting it for such a long time - please help us pushing it over the line! |
|
The changes are pushed for review and approval already couple months ago... repo owners seem to be busy or absent. |
|
Just tested the Lexus EU for the NX450H+ via the sandbox/simple_client_example.py. Looks to be fully working. Data retrieved are correct. |




Uh oh!
There was an error while loading. Please reload this page.
Hello everyone! Some time ago, Lexus was supported by the old Toyota integration. I need to read out SOC from UX300e and RX450h+
Is there anything in this direction possible?
Thanks a lot.
All reactions