tesla_api 3.0.2 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
@@ -73,4 +73,34 @@ RSpec.describe TeslaApi::Client do
73
73
  expect(tesla_api.vehicles).to include(TeslaApi::Vehicle)
74
74
  end
75
75
  end
76
+
77
+ describe 'retry options', vcr: { cassette_name: 'client-login_timeout' } do
78
+ subject(:tesla_api) { TeslaApi::Client.new(
79
+ access_token: ENV['TESLA_ACCESS_TOKEN'],
80
+ retry_options: retry_options
81
+ ) }
82
+
83
+ let(:retry_options) {{
84
+ max: 2,
85
+ methods: [:post],
86
+ retry_statuses: [408]
87
+ }}
88
+
89
+ context 'with retry' do
90
+ it 'obtains a Bearer token after retry' do
91
+ tesla_api.login!(ENV['TESLA_PASS'])
92
+ expect(tesla_api.access_token).to be
93
+ end
94
+ end
95
+
96
+ context 'without retry' do
97
+ let(:retry_options) { nil }
98
+
99
+ it 'raises an error' do
100
+ expect {
101
+ tesla_api.login!(ENV['TESLA_PASS'])
102
+ }.to raise_error(Faraday::ClientError)
103
+ end
104
+ end
105
+ end
76
106
  end
@@ -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 }
@@ -14,14 +14,14 @@ Gem::Specification.new do |spec|
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
15
  spec.require_paths = ['lib']
16
16
 
17
+ spec.add_dependency 'async-websocket'
17
18
  spec.add_dependency 'faraday'
18
19
  spec.add_dependency 'faraday_middleware'
19
- spec.add_dependency 'faye-websocket'
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,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tesla_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Dorr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-04 00:00:00.000000000 Z
11
+ date: 2020-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: faraday
14
+ name: async-websocket
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
28
+ name: faraday
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: faye-websocket
42
+ name: faraday_middleware
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -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
@@ -198,6 +198,7 @@ files:
198
198
  - lib/tesla_api/vehicle.rb
199
199
  - lib/tesla_api/version.rb
200
200
  - spec/cassettes/client-login.yml
201
+ - spec/cassettes/client-login_timeout.yml
201
202
  - spec/cassettes/client-refresh.yml
202
203
  - spec/cassettes/client-vehicles.yml
203
204
  - spec/cassettes/vehicle-activate_speed_limit.yml
@@ -252,6 +253,7 @@ files:
252
253
  - spec/cassettes/vehicle-sun_roof_control-close.yml
253
254
  - spec/cassettes/vehicle-sun_roof_control-vent.yml
254
255
  - spec/cassettes/vehicle-vehicle_config.yml
256
+ - spec/cassettes/vehicle-vehicle_data.yml
255
257
  - spec/cassettes/vehicle-vehicle_state.yml
256
258
  - spec/cassettes/vehicle-wake_up.yml
257
259
  - spec/cassettes/vehicle.yml
@@ -278,12 +280,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
280
  - !ruby/object:Gem::Version
279
281
  version: '0'
280
282
  requirements: []
281
- rubygems_version: 3.0.6
283
+ rubygems_version: 3.1.4
282
284
  signing_key:
283
285
  specification_version: 4
284
286
  summary: A wrapper for the Tesla JSON API
285
287
  test_files:
286
288
  - spec/cassettes/client-login.yml
289
+ - spec/cassettes/client-login_timeout.yml
287
290
  - spec/cassettes/client-refresh.yml
288
291
  - spec/cassettes/client-vehicles.yml
289
292
  - spec/cassettes/vehicle-activate_speed_limit.yml
@@ -338,6 +341,7 @@ test_files:
338
341
  - spec/cassettes/vehicle-sun_roof_control-close.yml
339
342
  - spec/cassettes/vehicle-sun_roof_control-vent.yml
340
343
  - spec/cassettes/vehicle-vehicle_config.yml
344
+ - spec/cassettes/vehicle-vehicle_data.yml
341
345
  - spec/cassettes/vehicle-vehicle_state.yml
342
346
  - spec/cassettes/vehicle-wake_up.yml
343
347
  - spec/cassettes/vehicle.yml