homebridge-vwconnectid
v1.1.6
Published
Homebridge plugin for Volkswagen ID.x cars
Maintainers
Readme
Homebridge Volkswagen ID.x plugin
This is a plugin for Homebridge to allow controlling your Volkswagen ID series (ID.3, ID.4, ID.5) car through iOS' HomeKit.
Uses the npm-vwconnectidapi module under the hood to communicate with the Volkwagen backend.
Installation
$ npm i homebridge-vwconnectid -gHomebridge plugins need to be installed globally, so the -g is mandatory.
Update dec-25
If you have trouble logging in check if any consent pages were not automatically accepted. I wasn't able to to test this thoroughly and you may need to open the consent page (url logged) manually. Edge seems to work, Firefox doesn't.
Upgrading from 1.0.5 to 1.1.x
The config has slightly changed. the locationMotionSensors block is not used anymore. Instead, the destinations block is used to configure a location as a destination for navigation (if address is specified) and/ or as a location aware motion trigger (if notificationRadius is specified). Migrating from 1.0.5 to 1.1.x, if you give the locations the same name, the old location motion sensor accessory will be reused (you probably want that).
Speed
Communication between you and the backend and between the backend and the car is slow. Any changes take up to a minute or so to propagate to the car.
Configuration
First, you need a working Homebridge installation.
Once you have that working, edit ~/.homebridge/config.json and add the following code block to the "platforms" section:
{
"name": "We Connect ID",
"platform": "WeConnectID",
"weconnect": {
"username": "We Connect username",
"password": "We Connect password",
"vin": "VIN OF YOUR CAR"
},
"options": {
"logLevel": "NONE",
"chargingAccessory": "Charging",
"climatisationAccessory": "Climatisation",
"remainingRangeAccessory": "Remaining km",
"destinations": [
{
"name": "Home",
"lat": 52.123456,
"lon": 5.123456,
"address": {
"country": "Nederland",
"street": "My street 4",
"zipCode": "1234 AA",
"city": "My town"
},
"notificationRadius": 300
},
{
"name": "Work",
"lat": 52.234567,
"lon": 4.234567,
"address": {
"country": "Nederland",
"street": "Cool street 75",
"zipCode": "2345 BB",
"city": "Your city"
},
"notificationRadius": 200
}
],
"routes": [
{
"name": "Home-Work",
"stopovers": [
{
"name": "Home",
"lat": 52.123456,
"lon": 5.123456,
"address": {
"country": "Nederland",
"street": "My street 4",
"zipCode": "1234 AA",
"city": "My town"
}
},
{
"name": "Work",
"lat": 52.234567,
"lon": 4.234567,
"address": {
"country": "Nederland",
"street": "Cool street 75",
"zipCode": "2345 BB",
"city": "Your city"
}
}
]
}
],
"settingSwitches": [
{
"name": "Reduced AC",
"setting": "reducedAC"
},
{
"name": "Plug Unlock",
"setting": "autoUnlockPlug"
},
{
"name": "Climatization at unlock",
"setting": "climatizationAtUnlock"
},
{
"name": "Window Heating",
"setting": "climatisationWindowHeating"
},
{
"name": "Front Left Zone",
"setting": "climatisationFrontLeft"
},
{
"name": "Front Right Zone",
"setting": "climatisationFrontRight"
}
],
"eventMotionSensors": [
{
"name": "Car unsafe state",
"event": "statusNotSafe"
}
]
}
}- The
namewill be the identifier that you can use, for example, in Siri commands; - Replace
weconnectoptions with the correct values; - set
logLeveltoNONE,DEBUG,INFOorERROR. Set to NONE if you think backend is too chatty. Defaults to ERROR. - Set charging, remaining range, and climatisation accessory names. Remove these options to avoid creating the accessories alltogether.
- Select setting switches to be exposed by Homekit.
- You can add locations to
destinationsblock. - If a
notificationRadiusis specified a motion sensor will be created withnamethat triggers whenever the car is parked withinnotificationRadiusdistance around the location (GPSlatandlon). Please respect the driver's privacy if using this option.
- If a
- If an
addressblock is specified a switch will be created that sends the destination to your car's navigation system.
- If an
- Add routes in the
routesblock. A route has multiple multiple stopovers. For each route a switch is created that sends the route to the navigation system. - You can add even more motion sensors to
eventMotionSensors. These create a motion sensor withnamethat triggers on a preset event. You can choose from the following list of events:
Events:
- 'statusNotSafe' - car is parked and doors remain unlocked or windows opened for >5 minutes.
- 'locked' - Indicates lock state
- 'parked' - Car is parked. Emits parking position as argument.
- 'notParked' - Car is on the move.
- 'chargePurposeReached' - Target state of charge reached.
- 'chargingStarted' - Charging started.
- 'chargingStopped' - Charging stopped.
- 'noExternalPower' - Plug is connected and external power does not become available (charging cannot be started).
- 'climatisationStopped' - Climatisation stopped.
- 'climatisationStarted' - Climatisation started.
- 'climatisationCoolingStarted' - Climatisation started cooling.
- 'climatisationHeatingStarted' - Climatisation started heating.
- 'climatisationTemperatureUpdated' - Target climatisation temperature changed.
Charging accessory
- Creates a switch for charging start and stop.
- The switch contains a Lightbulb service to (visually) indicate current state of charge in percent. It can also be used to set the target charge percentage of the battery (>= 50%).
- Contains a BatteryLevel service, so you can ask siri as well
- Creates a motion sensor that triggers when the target charge level is reached
Motion sensors
- One motion sensor is created that triggers whenever your car is parked and remains in an unsafe state (windows open, doors unlocked) for >5 minutes.
Climatisation
- Set climatisation temperature
- Set climatisation on and off. Setting the temperature doesn't automatically trigger on/ off state.
Changelog
- 1.1.5:
- Update npm-vwconnectidapi dependency. VW backend overhauled with new login logic. Plugin can't refresh and needs to re-login every hour.
- Added setDatabase(""); function to plugin (and npm-vwconnectidapi). Use for logging legs and charging stops to mysql db. Look in npm-vwcopnnectidapi source for how to use.
- 1.1.3:
- Support for (complex) routes with multiple stopovers.
- Fix
noExternalPowerevent.
- Fix
- 1.1.2:
- Bugfix parked event
- Less verbose error messages when VW backend is unavailable
- Most event motion sensors keep their state as long as the state doesn't change. Only
chargePurposeReached, all-Startedand-Stopped, andclimatisationTemperatureUpdatedtrigger, then switch off again after 10 seconds.
- Most event motion sensors keep their state as long as the state doesn't change. Only
- 1.1.1: Bugfix location motion sensor
- 1.1.0:
- Added switches to send a destination to your car's navigation system.
- Added light sensor (lux) that indicates the remaining range in km.
- Added 'locked' event (motion sensor) that changes state with door (un)lock.
- 'noExternalPower' event triggers when plug is connected and external power does not become available (charging cannot be started).
- Prettified backend & plugin log messages.
- 1.0.5: Bugfix events.
- 1.0.4: Add setting switches for climatisation and charging. Set charging 'brightness' for target battery level.
