tesla_api 3.0.3 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,51 +1,111 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: post
5
- uri: https://owner-api.teslamotors.com/oauth/token
6
- body:
7
- encoding: UTF-8
8
- string: grant_type=refresh_token&client_id=<TESLA_CLIENT_ID>&client_secret=<TESLA_CLIENT_SECRET>&refresh_token=<TESLA_REFRESH_TOKEN>
9
- headers:
10
- User-Agent:
11
- - github.com/timdorr/tesla-api v:1.5.0
12
- Authorization:
13
- - Bearer <TESLA_ACCESS_TOKEN>
14
- response:
15
- status:
16
- code: 200
17
- message: OK
18
- headers:
19
- Server:
20
- - nginx
21
- Date:
22
- - Mon, 23 Sep 2019 17:25:05 GMT
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Transfer-Encoding:
26
- - chunked
27
- Connection:
28
- - keep-alive
29
- X-Frame-Options:
30
- - SAMEORIGIN
31
- - SAMEORIGIN
32
- X-Xss-Protection:
33
- - 1; mode=block
34
- X-Content-Type-Options:
35
- - nosniff
36
- Cache-Control:
37
- - no-store
38
- Pragma:
39
- - no-cache
40
- Etag:
41
- - W/"25e04c26d708b6763d3dca87bcaeb2a7"
42
- X-Request-Id:
43
- - d153d7b0-ce0b-4c24-a109-e60488df7f48
44
- X-Runtime:
45
- - '0.020946'
46
- body:
47
- encoding: UTF-8
48
- string: '{"access_token":"bb91d9892b8af05ad389f2d05b9689657a076f61c4d97ff398f23d86112fb5ca","token_type":"bearer","expires_in":3888000,"refresh_token":"21879d76c4e00309b3d69c6ecb128b89e0c7e210838404601d9f433e9a069022","created_at":1569259505}'
49
- http_version:
50
- recorded_at: Mon, 23 Sep 2019 17:25:05 GMT
51
- recorded_with: VCR 4.0.0
3
+ - request:
4
+ method: post
5
+ uri: https://auth.tesla.com/oauth2/v3/token
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"grant_type":"refresh_token","scope":"openid email offline_access","client_id":"ownerapi","client_secret":"<TESLA_CLIENT_SECRET>","refresh_token":"<TESLA_REFRESH_TOKEN>"}'
9
+ headers:
10
+ User-Agent:
11
+ - github.com/timdorr/tesla-api v:3.0.7
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Content-Type:
26
+ - application/json
27
+ X-Dns-Prefetch-Control:
28
+ - 'off'
29
+ X-Frame-Options:
30
+ - DENY
31
+ Strict-Transport-Security:
32
+ - max-age=15552000; includeSubDomains
33
+ X-Download-Options:
34
+ - noopen
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Xss-Protection:
38
+ - 1; mode=block
39
+ X-Request-Id:
40
+ - c6575e47-91d3-4a07-9985-358de3dbe39e
41
+ X-Correlation-Id:
42
+ - c6575e47-91d3-4a07-9985-358de3dbe39e
43
+ Cache-Control:
44
+ - no-store
45
+ Pragma:
46
+ - no-cache
47
+ X-Response-Time:
48
+ - 24.639ms
49
+ Date:
50
+ - Sat, 30 Jan 2021 15:18:43 GMT
51
+ Content-Length:
52
+ - '2517'
53
+ Connection:
54
+ - keep-alive
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"access_token":"acess","refresh_token":"<TESLA_REFRESH_TOKEN>","id_token":"id","expires_in":300,"token_type":"Bearer"}'
58
+ recorded_at: Sat, 30 Jan 2021 15:18:43 GMT
59
+ - request:
60
+ method: post
61
+ uri: https://owner-api.teslamotors.com/oauth/token
62
+ body:
63
+ encoding: UTF-8
64
+ string: '{"grant_type":"urn:ietf:params:oauth:grant-type:jwt-bearer","client_id":"<TESLA_CLIENT_ID>","client_secret":"<TESLA_CLIENT_SECRET>"}'
65
+ headers:
66
+ User-Agent:
67
+ - github.com/timdorr/tesla-api v:3.0.7
68
+ Authorization:
69
+ - Bearer bear
70
+ Content-Type:
71
+ - application/json
72
+ Accept-Encoding:
73
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
74
+ Accept:
75
+ - '*/*'
76
+ response:
77
+ status:
78
+ code: 200
79
+ message: OK
80
+ headers:
81
+ Date:
82
+ - Sat, 30 Jan 2021 15:18:44 GMT
83
+ Content-Type:
84
+ - application/json; charset=utf-8
85
+ Transfer-Encoding:
86
+ - chunked
87
+ Connection:
88
+ - keep-alive
89
+ Vary:
90
+ - Accept-Encoding
91
+ X-Frame-Options:
92
+ - SAMEORIGIN
93
+ X-Xss-Protection:
94
+ - 1; mode=block
95
+ X-Content-Type-Options:
96
+ - nosniff
97
+ Etag:
98
+ - W/"85c5baa66d3db433982e5744ccc1e96e"
99
+ Cache-Control:
100
+ - max-age=0, private, must-revalidate
101
+ X-Request-Id:
102
+ - 2f0ad7f617da468d211594930c0e88d52f0ad7f617da468d211594930c0e88d5
103
+ X-Runtime:
104
+ - '0.301686'
105
+ Strict-Transport-Security:
106
+ - max-age=15724800; includeSubDomains
107
+ body:
108
+ encoding: ASCII-8BIT
109
+ string: '{"access_token":"qts-deadbeef","token_type":"bearer","expires_in":3888000,"refresh_token":"yes","created_at":1612019924}'
110
+ recorded_at: Sat, 30 Jan 2021 15:18:44 GMT
111
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,115 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://owner-api.teslamotors.com/api/1/vehicles
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - github.com/timdorr/tesla-api v:3.0.6
12
+ Authorization:
13
+ - Bearer <TESLA_ACCESS_TOKEN>
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Tue, 10 Nov 2020 02:53:32 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Vary:
32
+ - Accept-Encoding
33
+ X-Frame-Options:
34
+ - SAMEORIGIN
35
+ X-Xss-Protection:
36
+ - 1; mode=block
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Txid:
40
+ - 8cab94e3aac7ad773c2e8347050cb4a5
41
+ Etag:
42
+ - W/"cfa5885744c037b595646a39aaae3d82"
43
+ Cache-Control:
44
+ - max-age=0, private, must-revalidate
45
+ X-Request-Id:
46
+ - fb945c7582221ba925e2f4a7628948b5fb945c7582221ba925e2f4a7628948b5
47
+ X-Runtime:
48
+ - '0.080884'
49
+ Strict-Transport-Security:
50
+ - max-age=15724800; includeSubDomains
51
+ body:
52
+ encoding: ASCII-8BIT
53
+ string:
54
+ '{"response":[{"id":26640707449551857,"vehicle_id":1817902171,"vin":"5YJSA1E51GF163743","display_name":"Nikola
55
+ 2.0","option_codes":"AD15,MDL3,PBSB,RENA,BT37,ID3W,RF3G,S3PB,DRLH,DV2W,W39B,APF0,COUS,BC3B,CH07,PC30,FC3P,FG31,GLFR,HL31,HM31,IL31,LTPB,MR31,FM3B,RS3H,SA3P,STCP,SC04,SU3C,T3CA,TW00,TM00,UT3P,WR00,AU3P,APH3,AF00,ZCST,MI00,CDM0","color":null,"access_type":"OWNER","tokens":["no","nope"],"state":"online","in_service":false,"id_s":"26640707449551857","calendar_enabled":true,"api_version":10,"backseat_token":null,"backseat_token_updated_at":null,"vehicle_config":null}],"count":1}'
56
+ http_version:
57
+ recorded_at: Tue, 10 Nov 2020 02:53:32 GMT
58
+ - request:
59
+ method: get
60
+ uri: https://owner-api.teslamotors.com/api/1/vehicles/26640707449551857/data
61
+ body:
62
+ encoding: US-ASCII
63
+ string: ''
64
+ headers:
65
+ User-Agent:
66
+ - github.com/timdorr/tesla-api v:3.0.6
67
+ Authorization:
68
+ - Bearer <TESLA_ACCESS_TOKEN>
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - '*/*'
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: OK
77
+ headers:
78
+ Date:
79
+ - Tue, 10 Nov 2020 02:53:38 GMT
80
+ Content-Type:
81
+ - application/json; charset=utf-8
82
+ Transfer-Encoding:
83
+ - chunked
84
+ Connection:
85
+ - keep-alive
86
+ Vary:
87
+ - Accept-Encoding
88
+ X-Frame-Options:
89
+ - SAMEORIGIN
90
+ X-Xss-Protection:
91
+ - 1; mode=block
92
+ X-Content-Type-Options:
93
+ - nosniff
94
+ X-Txid:
95
+ - 95b841542f321728c867e12aaf9bf6f5
96
+ Etag:
97
+ - W/"4696b909a01379b329bd3311b52b75c6"
98
+ Cache-Control:
99
+ - max-age=0, private, must-revalidate
100
+ X-Request-Id:
101
+ - 53f72c31caff4a2d436805fa1b47215453f72c31caff4a2d436805fa1b472154
102
+ X-Runtime:
103
+ - '5.578065'
104
+ Strict-Transport-Security:
105
+ - max-age=15724800; includeSubDomains
106
+ body:
107
+ encoding: ASCII-8BIT
108
+ string:
109
+ '{"response":{"id":26640707449551857,"user_id":1023,"vehicle_id":1817902171,"vin":"5YJSA1E41GF167745","display_name":"Nikola
110
+ 2.0","option_codes":"AD15,MDL3,PBSB,RENA,BT37,ID3W,RF3G,S3PB,DRLH,DV2W,W39B,APF0,COUS,BC3B,CH07,PC30,FC3P,FG31,GLFR,HL31,HM31,IL31,LTPB,MR31,FM3B,RS3H,SA3P,STCP,SC04,SU3C,T3CA,TW00,TM00,UT3P,WR00,AU3P,APH3,AF00,ZCST,MI00,CDM0","color":null,"access_type":"OWNER","tokens":["9d33fab579bedf74","9eb517d37cab5bf8"],"state":"online","in_service":false,"id_s":"26640707449551857","calendar_enabled":true,"api_version":10,"backseat_token":null,"backseat_token_updated_at":null,"vehicle_config":{"can_accept_navigation_requests":true,"can_actuate_trunks":true,"car_special_type":"base","car_type":"models2","charge_port_type":"US","ece_restrictions":false,"eu_vehicle":false,"exterior_color":"White","has_air_suspension":true,"has_ludicrous_mode":false,"motorized_charge_port":true,"plg":true,"rear_seat_heaters":0,"rear_seat_type":0,"rhd":false,"roof_color":"None","seat_type":2,"spoiler_type":"None","sun_roof_installed":2,"third_row_seats":"None","timestamp":1604976818402,"trim_badging":"p90d","use_range_badging":false,"wheel_type":"AeroTurbine19"},"gui_settings":{"gui_24_hour_time":false,"gui_charge_rate_units":"mi/hr","gui_distance_units":"mi/hr","gui_range_display":"Rated","gui_temperature_units":"F","show_range_units":true,"timestamp":1604976818399},"drive_state":{"gps_as_of":1604976817,"heading":5,"latitude":3.972,"longitude":-4.9147,"native_latitude":3.982,"native_location_supported":1,"native_longitude":-4.947,"native_type":"wgs","power":0,"shift_state":null,"speed":null,"timestamp":1604976818416},"vehicle_state":{"api_version":10,"autopark_state_v2":"standby","autopark_style":"standard","calendar_supported":true,"car_version":"2020.36.16
111
+ 3e9e4e8dd287","center_display_state":0,"df":0,"dr":0,"ft":0,"homelink_device_count":2,"homelink_nearby":true,"is_user_present":false,"last_autopark_error":"no_error","locked":false,"media_state":{"remote_control_enabled":true},"notifications_supported":true,"odometer":57509.856033,"parsed_calendar_supported":true,"pf":0,"pr":0,"remote_start":false,"remote_start_enabled":true,"remote_start_supported":true,"rt":0,"sentry_mode":false,"sentry_mode_available":true,"smart_summon_available":true,"software_update":{"download_perc":0,"expected_duration_sec":2700,"install_perc":1,"status":"","version":""},"speed_limit_mode":{"active":false,"current_limit_mph":50.0,"max_limit_mph":90,"min_limit_mph":50,"pin_code_set":true},"summon_standby_mode_enabled":false,"sun_roof_percent_open":0,"sun_roof_state":"closed","timestamp":1604976818414,"valet_mode":false,"valet_pin_needed":true,"vehicle_name":"Nikola
112
+ 2.0"},"charge_state":{"battery_heater_on":false,"battery_level":90,"battery_range":224.81,"charge_current_request":40,"charge_current_request_max":40,"charge_enable_request":true,"charge_energy_added":29.41,"charge_limit_soc":90,"charge_limit_soc_max":100,"charge_limit_soc_min":50,"charge_limit_soc_std":90,"charge_miles_added_ideal":118.5,"charge_miles_added_rated":95.0,"charge_port_cold_weather_mode":null,"charge_port_door_open":true,"charge_port_latch":"Engaged","charge_rate":0.0,"charge_to_max_range":false,"charger_actual_current":0,"charger_phases":null,"charger_pilot_current":40,"charger_power":0,"charger_voltage":0,"charging_state":"Complete","conn_charge_cable":"SAE","est_battery_range":171.24,"fast_charger_brand":"<invalid>","fast_charger_present":false,"fast_charger_type":"<invalid>","ideal_battery_range":281.02,"managed_charging_active":false,"managed_charging_start_time":null,"managed_charging_user_canceled":false,"max_range_charge_counter":0,"minutes_to_full_charge":0,"not_enough_power_to_heat":false,"scheduled_charging_pending":false,"scheduled_charging_start_time":null,"time_to_full_charge":0.0,"timestamp":1604976818400,"trip_charging":false,"usable_battery_level":90,"user_charge_enable_request":null},"climate_state":{"battery_heater":false,"battery_heater_no_power":false,"climate_keeper_mode":"off","defrost_mode":0,"driver_temp_setting":22.8,"fan_status":0,"inside_temp":27.0,"is_auto_conditioning_on":false,"is_climate_on":false,"is_front_defroster_on":false,"is_preconditioning":false,"is_rear_defroster_on":false,"left_temp_direction":-223,"max_avail_temp":28.0,"min_avail_temp":15.0,"outside_temp":23.0,"passenger_temp_setting":22.8,"remote_heater_control_enabled":false,"right_temp_direction":-223,"seat_heater_left":0,"seat_heater_right":0,"side_mirror_heaters":false,"timestamp":1604976818413,"wiper_blade_heater":false}}}'
113
+ http_version:
114
+ recorded_at: Tue, 10 Nov 2020 02:53:38 GMT
115
+ recorded_with: VCR 4.0.0
@@ -3,6 +3,8 @@ require 'spec_helper'
3
3
  RSpec.describe TeslaApi::Client do
4
4
  subject(:tesla_api) { TeslaApi::Client.new(email: ENV['TESLA_EMAIL']) }
5
5
 
6
+ it { is_expected.to be_a(TeslaApi::Client) }
7
+
6
8
  context 'password grant auth' do
7
9
  describe '#new' do
8
10
  it 'has no expiry date' do
@@ -14,9 +16,13 @@ RSpec.describe TeslaApi::Client do
14
16
  end
15
17
  end
16
18
 
17
- describe '#login!', vcr: { cassette_name: 'client-login' } do
18
- it { is_expected.to be_a(TeslaApi::Client) }
19
-
19
+ describe '#login!', vcr: {
20
+ cassette_name: 'client-login',
21
+ match_requests_on: [
22
+ :method,
23
+ VCR.request_matchers.uri_without_params(:code_challenge, :state)
24
+ ]
25
+ } do
20
26
  it 'logs into the API' do
21
27
  tesla_api.login!(ENV['TESLA_PASS'])
22
28
  expect(a_request(:post, "https://#{URI.parse(TeslaApi::Client::BASE_URI).host}/oauth/token")).to have_been_made.once
@@ -24,22 +30,22 @@ RSpec.describe TeslaApi::Client do
24
30
 
25
31
  it 'obtains a Bearer token' do
26
32
  tesla_api.login!(ENV['TESLA_PASS'])
27
- expect(tesla_api.access_token).to match(/[a-z0-9]{32}/)
33
+ expect(tesla_api.access_token).to start_with('qts-')
28
34
  end
29
35
 
30
36
  it 'set a expiry date' do
31
37
  tesla_api.login!(ENV['TESLA_PASS'])
32
- expect(tesla_api.access_token_expires_at).to eq(Time.at(1475777133 + 7776000).to_datetime)
38
+ expect(tesla_api.access_token_expires_at).to eq(Time.at(1612019326 + 3888000).to_datetime)
33
39
  end
34
40
 
35
41
  it 'obtains a refresh token' do
36
42
  tesla_api.login!(ENV['TESLA_PASS'])
37
- expect(tesla_api.refresh_token).to match(/[a-z0-9]{32}/)
43
+ expect(tesla_api.refresh_token).to start_with('eyJ')
38
44
  end
39
45
 
40
46
  it 'expose expiry status' do
41
47
  tesla_api.login!(ENV['TESLA_PASS'])
42
- expect(tesla_api.expired?).to eq(true)
48
+ expect(tesla_api.expired?).to eq(false)
43
49
  end
44
50
  end
45
51
  end
@@ -60,7 +66,13 @@ RSpec.describe TeslaApi::Client do
60
66
  end
61
67
  end
62
68
 
63
- describe '#refresh_access_token', vcr: {cassette_name: 'client-refresh'} do
69
+ describe '#refresh_access_token', vcr: {
70
+ cassette_name: 'client-refresh',
71
+ match_requests_on: [
72
+ :method,
73
+ VCR.request_matchers.uri_without_params(:code_challenge, :state)
74
+ ]
75
+ } do
64
76
  it 'refreshes the access token' do
65
77
  tesla_api.refresh_access_token
66
78
  expect(tesla_api.access_token).not_to eq(access_token)
@@ -21,6 +21,18 @@ RSpec.describe TeslaApi::Vehicle do
21
21
  end
22
22
  end
23
23
 
24
+ describe '#vehicle_data', vcr: {cassette_name: 'vehicle-vehicle_data'} do
25
+ context 'data about the vehicle\'s overall state' do
26
+ subject { vehicle.data }
27
+
28
+ it { should include('display_name') }
29
+ it { should include('drive_state') }
30
+ it { should include('vehicle_state') }
31
+ it { should include('vehicle_config') }
32
+ it { should include('charge_state') }
33
+ end
34
+ end
35
+
24
36
  describe '#data', vcr: {cassette_name: 'vehicle-data'} do
25
37
  context 'data about the vehicle\'s overall state' do
26
38
  subject { vehicle.data }
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.add_dependency 'faraday_middleware'
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 2.0'
22
- spec.add_development_dependency 'rake', '~> 12.0'
22
+ spec.add_development_dependency 'rake', '~> 13.0'
23
23
  spec.add_development_dependency 'rspec', '~> 3.1'
24
- spec.add_development_dependency 'vcr', '~> 4.0'
24
+ spec.add_development_dependency 'vcr', '~> 6.0'
25
25
  spec.add_development_dependency 'webmock', '~> 3.0'
26
26
  spec.add_development_dependency 'dotenv', '~> 2.0'
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tesla_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Dorr
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-11 00:00:00.000000000 Z
11
+ date: 2021-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-websocket
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '12.0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '12.0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '4.0'
103
+ version: '6.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '4.0'
110
+ version: '6.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: webmock
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -145,10 +145,10 @@ extensions: []
145
145
  extra_rdoc_files: []
146
146
  files:
147
147
  - ".gitbook.yml"
148
+ - ".github/workflows/test.yml"
148
149
  - ".gitignore"
149
150
  - ".rspec"
150
151
  - ".tool-versions"
151
- - ".travis.yml"
152
152
  - Gemfile
153
153
  - LICENSE
154
154
  - README.md
@@ -252,6 +252,7 @@ files:
252
252
  - spec/cassettes/vehicle-sun_roof_control-close.yml
253
253
  - spec/cassettes/vehicle-sun_roof_control-vent.yml
254
254
  - spec/cassettes/vehicle-vehicle_config.yml
255
+ - spec/cassettes/vehicle-vehicle_data.yml
255
256
  - spec/cassettes/vehicle-vehicle_state.yml
256
257
  - spec/cassettes/vehicle-wake_up.yml
257
258
  - spec/cassettes/vehicle.yml
@@ -263,7 +264,7 @@ homepage: https://github.com/timdorr/tesla-api
263
264
  licenses:
264
265
  - MIT
265
266
  metadata: {}
266
- post_install_message:
267
+ post_install_message:
267
268
  rdoc_options: []
268
269
  require_paths:
269
270
  - lib
@@ -278,8 +279,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
279
  - !ruby/object:Gem::Version
279
280
  version: '0'
280
281
  requirements: []
281
- rubygems_version: 3.0.6
282
- signing_key:
282
+ rubygems_version: 3.1.4
283
+ signing_key:
283
284
  specification_version: 4
284
285
  summary: A wrapper for the Tesla JSON API
285
286
  test_files:
@@ -338,6 +339,7 @@ test_files:
338
339
  - spec/cassettes/vehicle-sun_roof_control-close.yml
339
340
  - spec/cassettes/vehicle-sun_roof_control-vent.yml
340
341
  - spec/cassettes/vehicle-vehicle_config.yml
342
+ - spec/cassettes/vehicle-vehicle_data.yml
341
343
  - spec/cassettes/vehicle-vehicle_state.yml
342
344
  - spec/cassettes/vehicle-wake_up.yml
343
345
  - spec/cassettes/vehicle.yml