[APP][Pro] Volvo on Call - Connected technology that makes your life easier

Control your Volvo car with Volvo On Call services

App store link: Volvo On Call

Connected Vehicle device type (as of version 1.3.0)

The Connected vehicle is the device type that supports Android auto based cars. Model year 2022 and later. It uses the official APIs listed on the Volvo Developer portal.

When adding a car you are prompted for your Volvo account’s username and password.

The Connected Vehicle device also requires a VCC API key that you can get after registering for a developer account on the Volvo Developer site, and creates an application there.

Volvo On Call device type

A Homey app using the unofficial API that the Volvo On Call iOS/Android app use. The app only contains one device type which is used for both ICE and PHEV cars. The two capabilities only relevant for PHEVs are automatically removed for ICE cars.

Adding a car
First, make sure the region in the app settings is correct, by default set to Europe.
You add a car to your Homey by clicking add device, select the Volvo On Call app, select Volvo On Call and click connect. When adding a car you need to enter your Volvo On Call credentials. The app will automatically show all cars associated with the account and allow you to choose which car(s) to add to Homey.

Your Volvo On Call credentials are only stored locally on your Homey, and even so, they are stored encrypted using an encryption key which is stored in an environment variable and thus not possible for any other app to access.

Triggers

  • Car left home
    The app uses the location of your Homey vs the location of the car. Distance apart needed to trigger car left/came home is by default 50 meters. This can be changed in device settings.
  • Car came home
  • Location changed
    A generic trigger that can be used to start a flow when your car arrives to a specific address, such as your work.
  • Engine started/stopped
  • Heater started/stopped
  • Fuel range changed
  • Battery level changed (only for PHEVs)
  • Charge cable status changed (only for PHEVs)

Conditions

  • Heater is on/off
  • Engine is on/off
  • Car is (not) at home
  • Car is (not) locked
  • A door is (not) open
  • Door is (not) open

Actions

  • Heater on/off
  • Lock/Unlock car
    Unlock action will silently unlock the tailgate/trunk. If the trunk is opened then all doors will unlock. For more details please visit Volvo On Call app: Lock/unlock your car
  • Engine remote start/stop
    There are lots of ifs and buts about this feature and one can question the real use of it. If you have started the engine twice remotely, then you need to start it with a key before you can start it remotely again. For more details please visit Volvo On Call app: Operating remote start of the car. The duration setting for action is only relevant for the engine start.
  • Honk horn
  • Blink lights
  • Honk horn and blink lights
  • Schedule charging for a location (only for PHEVs)
    This only works for existing charge locations created using the Volvo On Call iOS/Android app. Charge locations are cached when the Volvo On Call Homey app is started and if you add charge locations you need to restart the app. You can enable or disable scheduled charging for the chosen location, and set the start and stop time.
  • Start charging / override scheduled charging (only for PHEVs)
    This action will override any enabled scheduled charging.

Device Settings

  • Refresh from the car (minutes)
    How frequently Volvo On Call cloud is told to update status from the car. After each status refresh the status in Homey is also refreshed. Each action invocation will automatically trigger a refresh afterward, in order to show the correct status. The car seems to push status to Volvo On Call cloud by itself at least after a drive.
    The default refresh interval is 120 minutes. Please be aware that refreshing status too frequently consumes battery power in your vehicle.

  • Refresh from the cloud (minutes)
    How frequently the status from the Volvo On Call cloud is refreshed in your Homey. The default value is 5 minutes.

  • Refresh position (minutes)
    How frequently the position is refreshed from Volvo On Call cloud. Default value 5 minutes.

  • Proximity of home (meters)
    Distance from Homey/home the car can be, and the condition will still state that the car is at home.

Advanced info
The device settings also contain three debug settings. These fields contain the Volvo On Call JSON API response from the attribute and status APIs, including the last error related to the Volvo On Call API communication.

Anyone that owns a Volvo hybrid car that have figured out how services like Tibber start and stop charging? Do they use the scheduled charging that is available in the Volvo app, or are there other unknown APIs that they use?

Replying to myself, seems like they use the scheduled charging feature + one API call to override this and start charging.

Two new actions to arrive in the next version of the app for hybrids :+1:

Hi,

do you think it would be possible to make the JSON Voc_Status message available ? I use the MQTT hub APP to send every change to a local MQTT server, from there Node-Red takes care for the actions and the dashboard. It would be nice the have the Voc_Status in Node-Red…

Thanks

Pascal

Hi,

I guess that should be possible. My thinking now would be to expose it via what Homey calls a global token, e.g. available in any flow as a token. I assume this would work for your use case? You would need to use time or something as trigger a flow and use this new VOC status token as input to your MQTT app.

/Richard

Try it out and let me know, link to test version which expose the json in a global token. You find under the Volvo app in the token list.

This is great !!!

Will this come in the main release ?

thanks a lot… i will refine the interface and keep you updated.

Regards Pascal

Since you tested it successfully I will push the app from test to a live version (requires review by Athom). Usually takes a few days.

Hi. Great app! Thanks.
I can see information about the fuel range but i cannot use it in Flows. For example; push message when fuel range is below 20.

Will this be possible in the future?

Thanks.

Hi!

There is a test version with a fuel range change trigger added

Let me know if it works as expected.

Great, thanks! I’ll let you know.

Is het mogelijk om na elke engine stopped het verbruik op te vragen van de rit? Als ik deze kan loggen dan kan ik het verbruik op een lange periode bekijken…

I’m quite new with Homey and installed the VOC app, in devices I only see:

The distance between homey and the car
location of the car
Engine running yes or no
Parking heater running yes or no
lock state (no value “-”)
Fuel range (no value “-”)

Shouldn’t I see more like the screenshots above and also an option to enable the parking heater, closing the door, flued levels etc?

I do see them when creating flows.

Hi Rudolph,

Please write in English, my dutch is not what it used to be :wink:

This should refresh if not immediately so after a little while.
Location is fetched using a separate API vs the other information.
If you go to advanced settings of your VOC device in Homey and check the three debug properties at the bottom, do you see anything there? VOC Status and VOC Attributes should show json formatted data from last API calls. The VOC error property obviously the VOC error, last one that has occurred.

Edit:
Running my local tests I see we get an error from the status API call. No clues yet what problem is, I only get “An unknown error occured”, but all other API calls seems to work as before.

Is it possible to use the consumption of the ride after each engine stopped? If I can log it then I can view the consumption over a long period of time …

I get the access error too :frowning:

I also see the error: “An unknown error occured”

If I look at the attirbutes I see the json below. So there I can see the stuff like remote start, blink and horn, heater etc.
{
“engineCode”: “3521CF7C”,
“exteriorCode”: “35211165”,
“interiorCode”: “3521109F”,
“tyreDimensionCode”: “3521R557”,
“tyreInflationPressureLightCode”: “3521YT0A”,
“tyreInflationPressureHeavyCode”: “3521YX08”,
“gearboxCode”: “3521DB0C”,
“fuelType”: “Diesel”,
“fuelTankVolume”: 68,
“grossWeight”: 2200,
“modelYear”: 2015,
“vehicleType”: “V60”,
“vehicleTypeCode”: “3521AA26”,
“numberOfDoors”: 5,
“country”: {
“iso2”: “NL”
},
“registrationNumber”: “",
“carLocatorDistance”: 1000,
“honkAndBlinkDistance”: 500,
“bCallAssistanceNumber”: "
",
“carLocatorSupported”: true,
“honkAndBlinkSupported”: true,
“honkAndBlinkVersionsSupported”: [
“honkAndOrBlink”,
“honkAndBlink”
],
“remoteHeaterSupported”: true,
“unlockSupported”: true,
“lockSupported”: true,
“journalLogSupported”: true,
“assistanceCallSupported”: true,
“unlockTimeFrame”: 120,
“verificationTimeFrame”: 120,
“timeFullyAccessible”: 7200,
“timePartiallyAccessible”: 31680,
“subscriptionType”: “PREMIUM_2013”,
“subscriptionStartDate”: “2014-10-30T12:00:00+0000”,
“subscriptionEndDate”: “2021-12-09T17:08:01+0000”,
“serverVersion”: “20.3.21-voc-deployable”,
“VIN”: "
",
“journalLogEnabled”: true,
“highVoltageBatterySupported”: false,
“maxActiveDelayChargingLocations”: null,
“preclimatizationSupported”: false,
“sendPOIToVehicleVersionsSupported”: [
“sendSinglePOIToVehicle”
],
“climatizationCalendarVersionsSupported”: [],
“climatizationCalendarMaxTimers”: 8,
“vehiclePlatform”: “3521”,
“vin”: "
****************”,
“overrideDelayChargingSupported”: false,
“engineStartSupported”: true,
“status.parkedIndoor.supported”: false
}

Hi,

I’m seeing the same error ‘An unknown error occurred’ in the debug section.
Also the data for ‘locked’ and ‘fuel range’ are no longer updated for 14 days now. My flow ‘get a notice when the engine is started when not at home’ is no longer triggered.

The capabilities engine, heater, locked and range all come from the status message - so since Volvo changed something in their API, which stopped it from working, you wont see any new values to those.

All other APIs works as before, location, attributes, list cars on the Volvo account, etc. Only the status API is failing. Will try to figure out why, did a quick check from the latest version of the app and Volvo have changed the iOS app to use OAuth as I understand instead of basic authentication. This shouldn’t explain the problem here since they use OAuth for all API requests from the app, not only status API call.

Will spend some time later in the week to look more into this. In the meantime, if you stumble upon a mention of the same problem in any of the other VOC home automation bindings out there do let me know.