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.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +36 -0
- data/.tool-versions +1 -1
- data/docs/README.md +1 -1
- data/docs/api-basics/authentication.md +163 -36
- data/docs/api-basics/vehicles.md +5 -6
- data/docs/miscellaneous/endpoints.md +26 -4
- data/docs/vehicle/commands/climate.md +2 -0
- data/docs/vehicle/commands/homelink.md +1 -1
- data/docs/vehicle/commands/sharing.md +2 -2
- data/docs/vehicle/commands/valet.md +7 -5
- data/docs/vehicle/commands/wake.md +4 -1
- data/docs/vehicle/commands/windows.md +6 -2
- data/docs/vehicle/optioncodes.md +134 -61
- data/docs/vehicle/state/chargestate.md +17 -16
- data/docs/vehicle/state/climatestate.md +13 -19
- data/docs/vehicle/state/data.md +73 -61
- data/docs/vehicle/state/guisettings.md +1 -0
- data/docs/vehicle/state/nearbychargingsites.md +49 -74
- data/docs/vehicle/state/vehicleconfig.md +3 -3
- data/docs/vehicle/state/vehiclestate.md +43 -19
- data/lib/tesla_api/autopark.rb +6 -6
- data/lib/tesla_api/client.rb +88 -16
- data/lib/tesla_api/stream.rb +13 -13
- data/lib/tesla_api/vehicle.rb +5 -1
- data/lib/tesla_api/version.rb +1 -1
- data/spec/cassettes/client-login.yml +254 -46
- data/spec/cassettes/client-refresh.yml +109 -49
- data/spec/cassettes/vehicle-vehicle_data.yml +115 -0
- data/spec/lib/tesla_api/client_spec.rb +20 -8
- data/spec/lib/tesla_api/vehicle_spec.rb +12 -0
- data/tesla_api.gemspec +2 -2
- metadata +13 -11
- data/.travis.yml +0 -16
@@ -1,51 +1,111 @@
|
|
1
1
|
---
|
2
2
|
http_interactions:
|
3
|
-
- request:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
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: {
|
18
|
-
|
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
|
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(
|
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
|
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(
|
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: {
|
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 }
|
data/tesla_api.gemspec
CHANGED
@@ -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', '~>
|
22
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
23
23
|
spec.add_development_dependency 'rspec', '~> 3.1'
|
24
|
-
spec.add_development_dependency 'vcr', '~>
|
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
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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.
|
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
|