core icon indicating copy to clipboard operation
core copied to clipboard

volvo on call does not recognise ex30

Open peterb99 opened this issue 1 year ago • 10 comments

The problem

Volvo on call integration does not recognise volvo EX30

What version of Home Assistant Core has the issue?

core-2024.4.4

What was the last working version of Home Assistant Core?

none

What type of installation are you running?

Home Assistant OS

Integration causing the issue

volvo on call

Link to integration documentation on our website

https://www.home-assistant.io/integrations/volvooncall

Diagnostics information

Volvo on call integration does not recognise volvo EX30

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

peterb99 avatar Apr 30 '24 22:04 peterb99

Hey there @molobrakos, mind taking a look at this issue as it has been labeled with an integration (volvooncall) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of volvooncall can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign volvooncall Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


volvooncall documentation volvooncall source (message by IssueLinks)

home-assistant[bot] avatar Apr 30 '24 22:04 home-assistant[bot]

The Volvo EX30 requires a new app ("Volvo EX30") different from "Volvo Cars", maybe also the connection protocol is different. Moreover, the same incompatibility should occur also for the new EX90.

So probably a whole new integration might be necessary.

Anyway, on the Volvo developer site there is still nothing about the availability of Connecting Vehicle API or other APIs compatible with EX30 or EX90 models, essentially the APIs are only compatibile with cars using the Volvo Cars app.

Connected Vehicle API

Car models This API is available for: All car models between model year 2015 and 2022 (some endpoints have limited availability).

Extended Vehicle API

Car models This API is available for: All car models between model year 2015 and 2021, except for model XC40 fully electric. All car models with model year 2022, except for XC60, S90, V90, V90CC, XC40, and C40 fully electric.

Energy API

This API works for all plug-in hybrid and electric vehicles which are equipped with Google Automotive System (Google built-in).

List of supported cars: XC40 and C40 BEV. XC60 PHEV, S90 PHEV, V90 PHEV from model year 2022. XC90 PHEV, S60 PHEV, V60 PHEV from model year 2023. BEV = Battery Electric Vehicles, PHEV = Plug-in Hybrid Electric Vehicles

https://developer.volvocars.com/apis/

andrus2049 avatar May 01 '24 10:05 andrus2049

I had a XC40 that works great with this integration. Now I have a EX30 and I discovered it's not compatible :-(

Using postman to catch some packages, I've notice the endpoint is completely different and doing some work, it seams the same for the Smart #1, what makes sense, taking into consideration that is almost the same car.

I'm not very comfortable to do some reverse engineering all by my self, specially on the authentication part, but I'll leave here some of the endpoints.

GET https://api-vlv.ecloudeu.com/remote-control/user/authorization/vehicle/status/XXXXXXXXXXXXXX?latest=False&target=basic%2Cmore&userId=XXXXXXX { "code": "1000", "data": { "result": { "serviceResult": { "error": null, "operationResult": 1 }, "sessionId": "RS04197900000002523XXXXXXXXXXXX" }, "vehicleStatus": { "basicVehicleStatus": { "usageMode": "1", "engineStatus": "engine_off", "position": { "altitude": "77", "posCanBeTrusted": "false", "latitude": "130000000", "carLocatorStatUploadEn": "true", "marsCoordinates": "false", "longitude": "-30000000" }, "carMode": "0", "speed": "11.0", "speedValidity": "false", "direction": "185" }, "notification": { "notifForEmgyCallStatus": "0", "reason": "1", "time": "1706554810", "parameters": "{\"key\":\"New VIN number\",\"stringVal\":\"XXXXXXXXXXXXXX\"},{\"key\":\"Previous VIN number\",\"stringVal\":\"�����������������\"}" }, "eg": { "enableRunning": "false", "blocked": { "status": "0" }, "panicStatus": "false" }, "parkTime": { "status": "1719747897153" }, "configuration": { "propulsionType": "4", "fuelType": "4", "vin": "XXXXXXXXXXXXX" }, "updateTime": "1719752388831", "additionalVehicleStatus": { "maintenanceStatus": { "tyreTempWarningPassengerRear": "0", "daysToService": "568", "engineHrsToService": "500", "odometer": "209.000", "brakeFluidLevelStatus": "3", "tyreTempDriverRear": "26.000", "tyreTempWarningPassenger": "0", "tyreTempWarningDriverRear": "0", "mainBatteryStatus": { "stateOfCharge": "1", "chargeLevel": "98.8", "energyLevel": "0", "stateOfHealth": "0", "powerLevel": "0", "voltage": "12.875" }, "tyreTempDriver": "25.000", "tyreTempPassengerRear": "26.000", "tyrePreWarningDriver": "0", "distanceToService": "29791", "tyrePreWarningPassengerRear": "0", "tyreTempWarningDriver": "0", "tyreStatusPassengerRear": "288.330", "tyreStatusPassenger": "289.703", "tyreStatusDriverRear": "293.822", "serviceWarningStatus": "0", "tyreStatusDriver": "293.822", "tyreTempPassenger": "25.000", "tyrePreWarningDriverRear": "0", "tyrePreWarningPassenger": "0", "washerFluidLevelStatus": "0" }, "electricVehicleStatus": { "disChargeUAct": "0.0", "disChargeSts": "0", "wptFineAlignt": "0", "chargeLidAcStatus": "2", "distanceToEmptyOnBatteryOnly": "338", "distanceToEmptyOnBattery100Soc": "397", "chargeSts": "1", "averPowerConsumption": "17.1", "chargerState": "0", "timeToTargetDisCharged": "2047", "distanceToEmptyOnBattery20Soc": "79", "disChargeConnectStatus": "0", "chargeLidDcAcStatus": "2", "dcChargeSts": "0", "ptReady": "0", "chargeLevel": "86", "statusOfChargerConnection": "0", "dcDcActvd": "0", "indPowerConsumption": "1000", "dcDcConnectStatus": "0", "disChargeIAct": "0.0", "dcChargeIAct": "0.0", "chargeUAct": "0.0", "bookChargeSts": "0", "chargeIAct": "0.000", "timeToFullyCharged": "2047" }, "chargeHvSts": "1", "drivingBehaviourStatus": { "gearAutoStatus": "0", "gearManualStatus": "0", "engineSpeed": "0.000" }, "runningStatus": { "ahbc": "0", "goodbye": "0", "homeSafe": "0", "cornrgLi": "0", "frntFog": "0", "stopLi": "0", "tripMeter1": "204.5", "approach": "0", "tripMeter2": "18.9", "indFuelConsumption": "0", "hiBeam": "0", "engineCoolantLevelStatus": "3", "fuelEnLevel": "0", "loBeam": "0", "posLiRe": "0", "ltgShow": "0", "welcome": "0", "drl": "0", "fuelLevelPct": "0", "ahl": "0", "fuelEnCns": "0", "trunIndrLe": "0", "trunIndrRi": "0", "afs": "0", "dbl": "0", "avgSpeed": "20", "posLiFrnt": "0", "reverseLi": "0", "hwl": "0", "reFog": "0", "flash": "0", "allwl": "0", "fuelEnCnsFild": "0" }, "trailerStatus": { "trailerTurningLampSts": "0", "trailerFogLampSts": "0", "trailerBreakLampSts": "0", "trailerReversingLampSts": "0", "trailerPosLampSts": "0" }, "climateStatus": { "drvHeatSts": "0", "winPosDriver": "0", "rrVentDetail": "0", "rlVentSts": "0", "passVentSts": "0", "interiorTemp": "27.600", "passVentDetail": "0", "sunroofPos": "101", "cdsClimateActive": "false", "sunroofOpenStatus": "1", "rrHeatingDetail": "0", "winStatusPassenger": "2", "fragActive": false, "winStatusDriver": "2", "drvVentSts": "0", "winStatusPassengerRear": "2", "sunCurtainRearOpenStatus": "1", "preClimateActive": false, "rlHeatingDetail": "0", "winPosPassengerRear": "0", "curtainPos": "101", "rlVentDetail": "0", "curtainOpenStatus": "1", "climateOverHeatProActive": "false", "rrVentSts": "0", "rrHeatingSts": "0", "winPosPassenger": "0", "steerWhlHeatingSts": "0", "drvVentDetail": "0", "winPosDriverRear": "0", "exteriorTemp": "25.000", "rlHeatingSts": "0", "winStatusDriverRear": "2", "defrost": "false", "drvHeatDetail": "0", "passHeatingDetail": "0", "airBlowerActive": "false", "sunCurtainRearPos": "101", "passHeatingSts": "0" }, "drivingSafetyStatus": { "doorLockStatusDriverRear": "1", "srsCrashStatus": "0", "doorOpenStatusPassengerRear": "0", "doorOpenStatusDriver": "0", "seatBeltStatusPassenger": "false", "doorPosDriver": "0", "seatBeltStatusThPassengerRear": "false", "electricParkBrakeStatus": "1", "doorLockStatusDriver": "1", "seatBeltStatusThDriverRear": "false", "tankFlapStatus": "2", "seatBeltStatusPassengerRear": "false", "doorOpenStatusPassenger": "0", "doorPosPassenger": "0", "vehicleAlarm": { "alrmTrgSrc": "0" }, "centralLockingStatus": "2", "seatBeltStatusDriver": "false", "doorLockStatusPassenger": "1", "seatBeltStatusMidRear": "false", "trunkLockStatus": "1", "seatBeltStatusDriverRear": "false", "engineHoodOpenStatus": "0", "doorOpenStatusDriverRear": "0", "doorLockStatusPassengerRear": "1", "privateLockStatus": "0", "trunkOpenStatus": "0" }, "pollutionStatus": { "interiorSecondPM25Level": "0", "interiorPM25Level": "0", "relHumSts": "80", "exteriorPM25Level": "0" } }, "temStatus": { "swVersion": null, "serialNumber": null, "powerSource": null, "networkAccessStatus": { "mobileNetwork": null, "simInfo": { "iccId": null, "imsi": null, "msisdn": null } }, "mcuVersion": null, "mpuVersion": null, "backupBattery": { "stateOfCharge": null, "stateOfHealth": null, "voltage": null }, "hwVersion": null, "powerMode": null, "healthStatus": null, "imei": null, "state": null, "connectivityStatus": null } } }, "success": true, "hint": null, "httpStatus": "OK", "sessionId": "1ff44db24667e39d7xxxxxxxxxxx", "message": "operation succeed" }

Unlock Car PUT https://api-vlv.ecloudeu.com/remote-control/vehicle/telematics/XXXXXXXXXXXXXX { "latest": false, "serviceParameters": [ { "key": "target", "value": "trunk" }, { "key": "door", "value": "all" } ], "userId": "XXXXXXXX", "serviceId": "RDU_2", "timestamp": "1719752348493", "creator": "tc", "command": "start" }

Lock Car PUT https://api-vlv.ecloudeu.com/remote-control/vehicle/telematics/XXXXXXXXXXXXXX { "latest": false, "serviceParameters": [ { "key": "target", "value": "trunk" }, { "key": "door", "value": "all" } ], "userId": "XXXXXXXX", "serviceId": "RDL_2", "timestamp": "1719752348493", "creator": "tc", "command": "start" }

If anyone is available to explore this, I offer all the help I can. My discord: denkyem

denkyem avatar Jun 30 '24 13:06 denkyem

This might be useful

https://github.com/DasBasti/SmartHashtag

denkyem avatar Jun 30 '24 13:06 denkyem

I emailed Volvo developer.portal asking about API support and they mentioned this in their response: "We're excited to inform you that the EX30 data will be available soon. We are actively working on it and plan to provide an update after the summer vacation in week 33."

Funtijn avatar Jul 17 '24 18:07 Funtijn

With week 33 ending today, has anyone heard anything more about this? Any life signs from Volvo?

DanielMalmgren avatar Aug 18 '24 15:08 DanielMalmgren

There are some changes on the Volvo Public API for EX30 Since today, the Volvo2MQTT addon started to receive more information (Battery level, charging status, etc), unfortunately, services (lock/unlock, turn on AC) are not working yet

And the EEVEE app also start being compatible with EX30

denkyem avatar Sep 09 '24 16:09 denkyem

Hi, I have a new Volvo EC40 (model 2025). I tested 'Volvo on call integration' but it does not (yet) recognise volvo EC40.

rlavre avatar Sep 16 '24 11:09 rlavre

Just did a quick test through Postman and turning climatization on and unlocking doors seems to work now using https://api.volvocars.com

Funtijn avatar Oct 13 '24 20:10 Funtijn

I just got my EX40 and also run into not being recognized. Hope the integration will be updated.

korkmazk avatar Oct 19 '24 17:10 korkmazk

Same here: our new EX40 is not recognized. Are there other HA-integrations available, which can connect to the EX40? I read about EEVEE?

LAdegeest avatar Oct 23 '24 19:10 LAdegeest

Same here: our new EX40 is not recognized. Are there other HA-integrations available, which can connect to the EX40? I read about EEVEE?

Works for me: https://github.com/Dielee/volvo2mqtt

korkmazk avatar Oct 23 '24 20:10 korkmazk

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

Does this integration or the volvo2mqtt one support starting and stopping/pausing of the charge current charge? Still does not work for ex30 (tested today)

Bmiest avatar Jan 22 '25 15:01 Bmiest

Same here, does not work for the model EX30.

myUsrAcc avatar Jan 23 '25 13:01 myUsrAcc

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest Home Assistant version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.