wez3 / volkswagen-carnet-client

A Python client to use Volkswagen CarNet
40 stars 21 forks source link

climatisation.bs.notacceptable #5

Closed mikaelronde closed 6 years ago

mikaelronde commented 6 years ago

I had this working for a day but now all commands except retreiveCarNetInfo gives the error {"error":{"errorCode":"climatisation.bs.notacceptable","description":"Not Acceptable"}}. No changes done in car settings or in my implementation. Can still turn on/off everything through CarNet app.

cschriel commented 6 years ago

Same issue here

wez3 commented 6 years ago

There might me some changes to the API on Volkswagen API. Not sure though, have to dive into this to identify the issue

andlo commented 6 years ago

I to see this error. But I notise that climate dosnt work from Android clind or webpage as well.

The Danish VW just sayes "nothing is wrong at the moment whith Car-Net"

mikaelronde commented 6 years ago

both Climate and WindowMelt work through the app for me. I'm using version 4.2.5.1 from 16th of October so doesn't seem to be related to a suddenly changed API (unless an old one as been deprecated).

bullfinsh commented 6 years ago

I'm getting; Logging in Retrieving verhicle Retrieving CarNetInfo Traceback (most recent call last): File "vw_carnet.py", line 108, in retrieveCarNetInfo(VIN) File "vw_carnet.py", line 64, in retrieveCarNetInfo print str(loc) UnicodeEncodeError: 'ascii' codec can't encode character u'\xc5' in position 22: ordinal not in range(128)

bullfinsh commented 6 years ago

I have heard that the android app, which I believe that this script is acting like works less often than their website. I my case that is https://www.volkswagen-car-net.com/portal/no_NO/ and https://www.volkswagen-car-net.com/portal/user/blabla/yada-yada-yada/-/emanager/trigger-climatisation

Possible to use the script towards their page?

mikaelronde commented 6 years ago

I'm still seeing the same error. Is it working for anyone else?

reneboer commented 6 years ago

Hi @wez3, have you had any time to look at this issue? I would like to include control on climate and loading for my GTE in my home automation. I pulled the latest app pgk file but not being an android developer got stuck. The needed information on the correct link to use seems to be in a variable I have no idea to determine. I also tried a wireshark dump, but all communication is in TLS so I cannot look inside the data. Cheers

wez3 commented 6 years ago

Hi @reneboer . I havent found time to look into the issue yet. However, I used a Burp proxy in order to inspect the traffic. There is a free version of Burp available. Check out this link on how to configure Burp to inspect the Volkswagen apps traffic :) : https://support.portswigger.net/customer/portal/articles/1841101-configuring-an-android-device-to-work-with-burp

Feel free to commit any updates into this repository so we can get it working again!

reneboer commented 6 years ago

Hi @wez3, I have the logs and they basically start like the web app now with some back and forth the get some session cookies and stuff, and then do some oauth2 authentication requests to get a long token that is then used for a Bearer authorization. Problem is I am not getting it to authorize and return the tokens. I only know basic http requests, this I have no experience with.

After that point it is much like you have already.

reneboer commented 6 years ago

I think I managed to write my first python script and my first authentication flow.

This version is working for me. Feel free to expand and use. https://github.com/reneboer/python-carnet-client

bullfinsh commented 6 years ago

Hey!

Works here as well it seems!

Great job!

I’ll test it more over the weekend. Have a great one!

On 5 Jan 2018, at 19:26, reneboer notifications@github.com wrote:

I think I managed to write my first python script and my first authentication flow.

This version is working for me. Feel free to expand and use. https://github.com/reneboer/python-carnet-client <x-msg://7/url> — You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/wez3/volkswagen-carnet-client/issues/5#issuecomment-355628596, or mute the thread https://github.com/notifications/unsubscribe-auth/AKCwO5UJq97rTpoReNeydFhO34FEWc1jks5tHmlZgaJpZM4QhS2R.

mikaelronde commented 6 years ago

Great work @reneboer. Thanks to both @wez3 and @reneboer for working on this.

wez3 commented 6 years ago

Nice @reneboer . Do you mind if i update this repository with your modifications to get it working again?

reneboer commented 6 years ago

Hi @wez3, not at all. Go ahead. I would not have been able to do it without your input.

wez3 commented 6 years ago

Just added the script of @reneboer to the repository (a script that communicates through the Volkswagen website instead of the Mobile app). Slightly modified to meet the original README.md usage section. Thanks for your work @reneboer. I will update the older "app" version later to get it working again!

harmjanr commented 6 years ago

@wez3 Got the GTE communication working through Insomnia, thanks to your vw_carnet_app.py example code. I get the climatisation.bs.notacceptable as well on startClimat. Really looking forward to the fixed app version, so I can try integration with Domoticz :D

wez3 commented 6 years ago

@harmjanr In meanwhile you can use: https://github.com/wez3/volkswagen-carnet-client/blob/master/vw_carnet_web.py

That script should be working fine :)

harmjanr commented 6 years ago

@wez3 Hmmm that one is a lot harder to do with just API calls, with extracting the base url from the Login call, regex etc..

bgewehr commented 6 years ago

Just to be clear: is this error related to that one : https://github.com/wez3/volkswagen-carnet-client/issues/7

I’m getting errors of insufficient authorization when using that SPIN code for turning the gasoline heater on.

wez3 commented 6 years ago

It seems different, this issue is related to the initial "_app" version of the script. #7 is related to the "_web" version.

harmjanr commented 6 years ago

@wez3 I used the _web code right away in Domoticz, works awesome. It takes aaaages before the change is synced to the car/visible in the app though. I heard about a softwareupdate that would fix this, so I'll try this and let you know if it's faster

reneboer commented 6 years ago

Hi, I have rewritten the code in LUA as that is what my HA system uses. The code will work a lot better if you capture the token, session id and user URL. You can reuse that for about 30 minutes before you need to logon again. This saves about 30-40 seconds per request. If you're up for a bit of LUA (not hard if you know Python) look at the function _command() in the CarNetModule.

https://github.com/reneboer/openLuup-CarNet/blob/master/src/L_CarNet1.lua

wez3 commented 6 years ago

Somebody commited a fix for the carnet-app py script :).