robinostlund / volkswagencarnet

A python library for volkswagen carnet
GNU General Public License v3.0
67 stars 38 forks source link

We Connect Portal will be shut down on April 27th, 2021 #111

Closed hanzoh closed 3 years ago

hanzoh commented 3 years ago

I have just received an email that VW will shut down the We Connect Portal in favor of myVolkswagen. This new service only features a small subset of the functionality that the We Connect Portal offered (translated from DE to EN):

From the Car-Net/We Connect service portfolio, you will find the following functions on the new myVolkswagen website in the future:

  • Add vehicle
  • Manage vehicle
  • News (RSS feeds)
  • Driving data
  • Vehicle condition report
  • Mobile key
  • Service scheduling
  • Preferred service partner

In the We Connect app, the following functions are conveniently available to you via smartphone:

  • Add vehicle
  • Manage vehicles
  • Volkswagen Ident procedure
  • Manage co-users
  • Driving data
  • Vehicle condition report
  • Doors & Lights
  • Parking position
  • Area notification
  • Speed notification
  • Horn & flashing
  • Online anti-theft alarm
  • Online parking heater
  • Online destination import
  • Online route import
  • Locking & unlocking
  • Departure times
  • Air conditioning
  • Charging
  • Mobile key
  • Service scheduling
  • Preferred service partner

So I guess this means the end of your excellent library as it works today. I did a quick trace of what the iOS app contacts by using Charles Proxy:

https://tokenrefreshservice.apps.emea.vwapps.io https://consent.vwgroup.io https://mbboauth-1d.prd.ece.vwg-connect.com https://customer-profile.apps.emea.vwapps.io https://vum.apps.emea.vwapps.io https://profileintegrityservice.apps.emea.vwapps.io https://msg.volkswagen.de https://mal-1a.prd.ece.vwg-connect.com https://fal-3a.prd.eu.dp.vwg-connect.com https://identity.vwgroup.io https://cdn.emea.vwapps.io

Maybe your library can mimic the iOS app's behavior?

isabellaalstrom commented 3 years ago

Hopefully it will be possible to reverse engineer the app. I would gladly help in any way I can to make this library live on. Do you think you will try to fix it once it breaks @robinostlund ?

robinostlund commented 3 years ago

i think it should be possible, just hope that they have the same support for all the existing sensors etc that we have now :)

JohNan commented 3 years ago

I have a trace of the Android app. But I have a vague memory that I read in another issue that someone started on a library based on the mobile api?

Den ons 14 apr. 2021 16:38robinostlund @.***> skrev:

i think it should be possible, just hope that they have the same support for all the existing sensors etc that we have now :)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/robinostlund/volkswagencarnet/issues/111#issuecomment-819569299, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADYGJIMRHDKL66JULPERGTTIWSGBANCNFSM425ENRZQ .

JohNan commented 3 years ago

I found the library. https://github.com/trocotronic/weconnect

Seems to work pretty well.

Fetching information of PASSAT (vin WVW.... )...
Model: PASSAT Va
Year: 2020
Model code: CB548T
Engine:
        Combustion: True
        Electric: False
        Hybrid: False
        GNC: False
Mobile key activated: None
eSIM compatible: True
Power layer: False
Member since: 21.12.2019
Contracts:
        We Connect Plus, expires in 21.12.2022
        We Connect, expires in 21.12.2049
        Nödsamtalstjänst, expires in 13.02.2030
Latest report
        Date: 14.04.2021 12:25
        Mileage: 13.610 km
        Next service: 242 Dag(ar) / 16.500 km (overdue False)
        Next oil: 189 Dag(ar) / 14.300 km (overdue False)
Latest trip statistics:
        Date: Igår, 12:24 km
        Average speed: 27.0 km/h
        Duration: 17 min
        Distance: 7.0 km
        Average Fuel Consumption 11.7 l 
isabellaalstrom commented 3 years ago

Are you sure it uses the mobile api? I only looked quick from my phone but it seems to use the website? BASE_URL = 'https://www.portal.volkswagen-we.com' Edit: I looked at the webapi file.

JohNan commented 3 years ago

Are you sure it uses the mobile api? I only looked quick from my phone but it seems to use the website? BASE_URL = 'https://www.portal.volkswagen-we.com' Edit: I looked at the webapi file.

Ah, I think the example actually uses the webapi. But there is a nativeapi file also. I'll give it a try also.

hanzoh commented 3 years ago

I tried to trace the iOS App with Charles, but it seems it does not support HTTP/2 or it was not correctly updated for iOS 14. I found this guide, but Frida requires a jailbroken iPhone to attach to an App: https://andydavies.me/blog/2019/12/12/capturing-and-decrypting-https-traffic-from-ios-apps/

When I tried a Jailbreak on iOS 14.2 or 14.3 (can't remember), the We Connect App gave some warnings that it would not support unlocking etc when used on a jailbroken device. Maybe tracing Android is much easier and someone has the tools for it.

I have not tested this library yet, but the URLs used here look identical to what I found already with Charles: https://github.com/trocotronic/weconnect/blob/master/NativeAPI.py

madmic1314 commented 3 years ago

Would it be possible to setup a separate WiFi SSID with an in-line tap to then use something like wireshark on? Happy to give it a go - will need to get an older phone (Android) and wipe to try and reduce the noise.

How would we go about tracing with Android? If you can point me in the right direction I'll take a look. I can't root my phone though, but could an older one.

JohNan commented 3 years ago

Would it be possible to setup a separate WiFi SSID with an in-line tap to then use something like wireshark on? Happy to give it a go - will need to get an older phone (Android) and wipe to try and reduce the noise.

How would we go about tracing with Android? If you can point me in the right direction I'll take a look. I can't root my phone though, but could an older one.

If you have an Android device with Android 10 or older you can use two apps in combination, without having to root (which WeConnect actually detects)

First the http sniffer HttpCanary https://play.google.com/store/apps/details?id=com.guoshi.httpcanary

And then parallel space which acts like a virtual space where you can install apps in a sandbox environment. https://play.google.com/store/apps/details?id=com.lbe.parallel.intl

Install WeConnect in parallel space and target parallel space in HttpCanary for sniffing traffic.

Login to WeConnect in parallel space and all encrypted traffic will be visible.

madmic1314 commented 3 years ago

Tried this on my Wife's phone, running Android 7. Had mixed luck - We Connect was very unstable.

Gave it a go on my Android 11 phone using NetCapture (https://play.google.com/store/apps/details?id=com.minhui.networkcapture&hl=en_US&gl=US) without Parallel Space - had to manually export & import the VPN cert to make it work. Turned on a filter for only WeConnect assuming it doesn't spawn / use anything else. Spent about 30 minutes trying different functions, lock / unlock, flash lights, update status, etc. From the logs I can see connections to:

api-dcrm-service.volkswagen.net cdn.emea.vwapps.io customer-profile.apps.emea.vwapps.io () e2ed-sensor.apps.emea.vwapps.io () identity.vwgroup.io mal-1a.prd.ece.vwg-connect.com mal-3a.prd.eu.dp.vwg-connect.com mbboauth-1d.prd.ece.vwg-connect.com msg.volkswagen.de () shop.volkswagen-we.com tokenrefreshservice.apps.emea.vwapps.io* () userinformationservice.apps.emea.vwapps.io () usermanagementservice.apps.emea.vwapps.io ()

And our friends at Google: clients4.google.com maps.googleapis.com

The bold lines are where they match the list in the first post. The normal text are new. () SSL certs have a SAN of: .emea.vwapps.io, .apps.emea.vwapps.io, .sys.emea.vwapps.io (**) SSL cert has a SAN of: www.msg.volkswagen.de

Interesting is: Post 1: fal-3a.prd.eu.dp.vwg-connect.com My test: mal-3a.prd.eu.dp.vwg-connect.com

Makes me wonder if this named differently for different regions? Could be multiple servers behind a load-balancer? Think we need more people to run the test - I'm in the UK.

tubalainen commented 3 years ago

Tomorrow is the day :/

Lets see what happeneds.

tubalainen commented 3 years ago

@JohNan had hopes for debugging this in BlueStacks but the We Connect app crashes :/

JohNan commented 3 years ago

I have tried the python module that I referred to and I am able to fetch my car data. But it is a bit of work to parse and find all values that we currently have, if they are available at all, and my time is somewhat limited. But I think the library can be a goos starting point. Either ask the person behind it to join us, we fork it or use it as inspiration.

here's some output and I have noticed that the difference between mal and fal servers (at least in my case) is that the fal server have more updated data. mal lagged behind several days.

{
  "vin":"WVWZZZ.....",
  "vehicleData":{
    "data":[
      {
        "id":"0x0101010001",
        "field":[
          {
            "id":"0x0101010001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"echo"
          }
        ]
      },
      {
        "id":"0x0202FFFFFF",
        "field":[
          {
            "id":"0x020203A201",
            "tsCarSentUtc":"2021-04-24T08:06:37Z",
            "tsCarSent":"2021-04-24T10:06:30",
            "tsCarCaptured":"2021-04-22T12:20:55",
            "tsTssReceivedUtc":"2021-04-24T08:06:43Z",
            "milCarCaptured":13654,
            "milCarSent":13663,
            "textId":"warning.msgA201"
          }
        ]
      },
      {
        "id":"0x0203FFFFFF",
        "field":[
          {
            "id":"0x0203010001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"-14300",
            "unit":"km",
            "textId":"interval.oil.distance"
          },
          {
            "id":"0x0203010002",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"-180",
            "textId":"interval.oil.time"
          },
          {
            "id":"0x0203010003",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"-16400",
            "unit":"km",
            "textId":"interval.inspection.distance"
          },
          {
            "id":"0x0203010004",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"-231",
            "textId":"interval.inspection.time"
          }
        ]
      },
      {
        "id":"0x0204FFFFFF",
        "field":[
          {
            "id":"0x0204040001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"1.0",
            "unit":"l"
          },
          {
            "id":"0x0204040003",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"50.0",
            "unit":"%",
            "textId":"oil.level"
          },
          {
            "id":"0x0204040004",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"0",
            "textId":"oilDisplay.0"
          },
          {
            "id":"0x02040C0001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-25T18:32:35",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13681,
            "milCarSent":13689,
            "value":"5000",
            "unit":"km"
          }
        ]
      },
      {
        "id":"0x0301FFFFFF",
        "field":[
          {
            "id":"0x0301010001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"2",
            "textId":"status_parking_light_off"
          },
          {
            "id":"0x0301020001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"2791",
            "unit":"dK",
            "textId":"temperature_outside_valid"
          },
          {
            "id":"0x0301030001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "textId":"parking_brake_inactive"
          },
          {
            "id":"0x0301030003",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "unit":"%",
            "textId":"bem_ok"
          },
          {
            "id":"0x0301030004",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "unit":"km/h",
            "textId":"speed_ok"
          },
          {
            "id":"0x0301030005",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"840",
            "unit":"km",
            "textId":"range_ok"
          },
          {
            "id":"0x0301030006",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"840",
            "unit":"km",
            "textId":"range_ok"
          },
          {
            "id":"0x0301030007",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"5",
            "textId":"engine_type_diesel"
          },
          {
            "id":"0x0301030008",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "textId":"range_error"
          },
          {
            "id":"0x0301030009",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "textId":"engine_type_unsupported"
          },
          {
            "id":"0x030103000A",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"99",
            "unit":"%",
            "textId":"fuel_level_ok"
          },
          {
            "id":"0x030103000B",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"fuel_level_calculated"
          },
          {
            "id":"0x030103000D",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "unit":"%",
            "textId":"gas_level_ok"
          },
          {
            "id":"0x0301040001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"2",
            "textId":"door_locked"
          },
          {
            "id":"0x0301040002",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_closed"
          },
          {
            "id":"0x0301040003",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"2",
            "textId":"door_safe"
          },
          {
            "id":"0x0301040004",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"door_invalid"
          },
          {
            "id":"0x0301040005",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"door_invalid"
          },
          {
            "id":"0x0301040006",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"door_invalid"
          },
          {
            "id":"0x0301040007",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"2",
            "textId":"door_locked"
          },
          {
            "id":"0x0301040008",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_closed"
          },
          {
            "id":"0x0301040009",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"2",
            "textId":"door_safe"
          },
          {
            "id":"0x030104000A",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"door_invalid"
          },
          {
            "id":"0x030104000B",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"door_invalid"
          },
          {
            "id":"0x030104000C",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"door_invalid"
          },
          {
            "id":"0x030104000D",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_unlocked"
          },
          {
            "id":"0x030104000E",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_closed"
          },
          {
            "id":"0x030104000F",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_unsafe"
          },
          {
            "id":"0x0301040010",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_unlocked"
          },
          {
            "id":"0x0301040011",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_closed"
          },
          {
            "id":"0x0301040012",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"door_unsafe"
          },
          {
            "id":"0x0301050001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"window_closed"
          },
          {
            "id":"0x0301050002",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "unit":"%"
          },
          {
            "id":"0x0301050003",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"window_closed"
          },
          {
            "id":"0x0301050004",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "unit":"%"
          },
          {
            "id":"0x0301050005",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"window_closed"
          },
          {
            "id":"0x0301050006",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "unit":"%"
          },
          {
            "id":"0x0301050007",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"3",
            "textId":"window_closed"
          },
          {
            "id":"0x0301050008",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "unit":"%"
          },
          {
            "id":"0x0301050009",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "textId":"window_unsupported"
          },
          {
            "id":"0x030105000B",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "textId":"window_unsupported"
          },
          {
            "id":"0x030105000D",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "textId":"window_unsupported"
          },
          {
            "id":"0x030105000F",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"0",
            "textId":"window_unsupported"
          },
          {
            "id":"0x0301050011",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"window_invalid"
          },
          {
            "id":"0x0301060001",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060002",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060003",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060004",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060005",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060006",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060007",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060008",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x0301060009",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x030106000A",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x030106000B",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x030106000C",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x030106000D",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x030106000E",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          },
          {
            "id":"0x030106000F",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"1",
            "textId":"tyre_invalid"
          }
        ]
      },
      {
        "id":"0x0101010002",
        "field":[
          {
            "id":"0x0101010002",
            "tsCarSentUtc":"2021-04-26T14:32:06Z",
            "tsCarSent":"2021-04-26T16:32:03",
            "tsCarCaptured":"2021-04-26T16:32:03",
            "tsTssReceivedUtc":"2021-04-26T14:32:07Z",
            "milCarCaptured":13689,
            "milCarSent":13689,
            "value":"13689"
          }
        ]
      }
    ]
  }
}
JohNan commented 3 years ago

And for reference, I have a complete dump (request/response) och the traffic from the app, from login to completely loaded. I can dump more traffic if needed.

matlimatli commented 3 years ago

I also had a look at the native API of the python library that @JohNan refers to. It looks very promising as a starting point. It grabs my vehicle data quickly, which looks correct and up-to-date. I am able to start and stop the climatisation, and probably also the charging (my cable is not connected at the moment). The current range appears correct. At least for me, these are the top priorities. But there is a large amount of other data available as well, so it seems quite possible to retain most of the current functionality.

matlimatli commented 3 years ago

And now the web interface appears to have been closed. The native version of https://github.com/trocotronic/weconnect still works fine though. So I agree that this could be a good starting point for an updated integration.

isabellaalstrom commented 3 years ago

Do you need more example data for other cars? I can try with my Tiguan with combustion engine. I would be happy to help with more stuff to the best of my abilities if pointed in the right way. Have anyone began to try to switch the used endpoints?

acdcnow commented 3 years ago

what about that one: https://github.com/lendy007/homeassistant-skodaconnect .... This is fork of robinostlund/homeassistant-volkswagencarnet modified to support Skoda Connect/MySkoda through native app API (API calls directly to vwg-connect services)

PRE-Release skodaconnect-1.0.40rc2 locks like most work is already done if you check connection.py

... """Communicate with Skoda Connect services.""" """Fork of https://github.com/robinostlund/volkswagencarnet""" """Modified to utilize API calls derived from Android Apps instead of Web API"""

matlimatli commented 3 years ago

Do you need more example data for other cars? I can try with my Tiguan with combustion engine. I would be happy to help with more stuff to the best of my abilities if pointed in the right way. Have anyone began to try to switch the used endpoints?

I can supply example data for e-Golf. I made a really ugly temporary emergency fix for my setup, based on the native API and mqtt. But I haven't looked into adapting the volkswagencarnet component, and will probably not have time for that in the near time (I might also have some conflicts of interest due to my job). But I can surely help out with testing stuff if needed.

tubalainen commented 3 years ago

what about that one: https://github.com/lendy007/homeassistant-skodaconnect .... This is fork of robinostlund/homeassistant-volkswagencarnet modified to support Skoda Connect/MySkoda through native app API (API calls directly to vwg-connect services)

PRE-Release skodaconnect-1.0.40rc2 locks like most work is already done if you check connection.py

... """Communicate with Skoda Connect services.""" """Fork of https://github.com/robinostlund/volkswagencarnet""" """Modified to utilize API calls derived from Android Apps instead of Web API"""

Ping @robinostlund @JohNan ... this might be something that we just can commit and make a few changes on?

isabellaalstrom commented 3 years ago

@matlimatli Could you maybe share this emergency fix somewhere? :)