@natereprogle/onstar
v0.0.22
Published
A scrypted plugin to allow control over your OnStar enabled vehicles
Downloads
226
Maintainers
Readme
Scrypted OnStar
Auth issues? Read this!
A Scrypted plugin to control OnStar enabled vehicles.
This plugin was tested using a 2024 Chevrolet Trax 1RS
. Other vehicle features may vary.
I recommend, if possible, creating a secondary OnStar account and connecting this plugin to it. You can share vehicles with these second OnStar accounts, and it protects your main account as well.
This plugin uses an UNOFFICIAL API, OnStarJS. OnStar refuses to provide developers with a publicly available API. They claim to have commercial development APIs available, but also refuse to respond to development requests. Therefore, the community has had to resort to workarounds and reverse engineering the OnStar API. USE THIS AT YOUR OWN RISK.
Help Wanted! If you know how to make this plugin better, or want to contribute, please submit a pull request 😄
Usage
Once installed, you will need four things:
- The VIN of primary vehicle
- Your OnStar Username
- Your OnStar Password
- Your OnStar Account PIN
Enter those items in the settings pane of the @natereprogle/onstar plugin, and save. Then, reload the plugin. Your vehicles should appear momentarily. You may also add them to the HomeKit plugin for control of them via Siri, Shortcuts, or other automations. And, in iOS 17, since widgets are interactable, this means you can finally use a widget (Home or Shortcuts) to start your vehicle instead of having to open the official app for your vehicle. See the below screenshot as an example! (Ignore the updating outlets 😜)
Current Features
- Remote Lock / Unlock
- Remote Start
- Activate Horn / Lights
- Model, Manufacturer, Serial Number, and Firmware Version in the HomeKit device settings all match your vehicle information. Serial Number maps to VIN, and Firmware Version maps to vehicle year. Feel free to brag about your firmware version being 2024.0, if you so choose 😎
Planned Features
- Add support for EV-specific functionality (Will need assistance, as my vehicle is an ICE).
- Add the ability to check diagnostic information from HomeKit. This can be achieved by creating sensors and setting them based on diagnostic levels.
Workarounds
As it is currently not possible to query a vehicle's status (See "Current Limitations" below), the plugin will do two things automatically
- The doors will automatically lock after 5 minutes, if not locked from HomeKit. The same applies to the horn and lights, if they are on.
- The engine switch will automatically be flipped to off after 15 minutes (On my car, the timeout is 15 minutes. Not sure if this is the same for EVs or other GM vehicles). I am tempted to make this flip back to off automatically once the vehicle is running, that way you, as the driver, are aware your vehicle started, but for now it's just a 15 minute timeout, just like the myChevy app.
Current Limitations
- As far as I'm aware, the OnStar API does not send data on its own, it only sends replies to requests. Therefore, vehicles cannot currently be queried for their status's. You can query diagnostic info, but that does not include things like lights, lock, engine status, or panic.
- This is an unofficial API. At any time OnStar can block the usage of this API, or even ban your account, if they so chose. Since OnStarJS uses the "official" key from the Android APK, and you are using legitimate credentials, I don't see why they would, but they are the "boss", so-to-speak, regarding their product. So, use this with caution.
- Each feature is its own "device". Unlike HomeBridge, where you can create devices with multiple properties on them (For example, the Hatch Baby Rest plugin from dgrief, which allows you to set brightness, power, and volume (using a fan speed control) all within the same device), I was not able to figure out how to create a single device with multiple properties. So, for each vehicle you own, you will have at least 4 (for now) devices associated with it.