tesla_api 0.9.0 → 1.0.0

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -2
  3. data/lib/tesla_api/vehicle.rb +32 -20
  4. data/lib/tesla_api/version.rb +1 -1
  5. data/spec/cassettes/vehicle-auto_conditioning_start.yml +130 -0
  6. data/spec/cassettes/vehicle-auto_conditioning_stop.yml +130 -0
  7. data/spec/cassettes/vehicle-charge_max_range-twice.yml +171 -0
  8. data/spec/cassettes/vehicle-charge_max_range.yml +130 -0
  9. data/spec/cassettes/vehicle-charge_port_door_open.yml +130 -0
  10. data/spec/cassettes/vehicle-charge_standard-twice.yml +171 -0
  11. data/spec/cassettes/vehicle-charge_standard.yml +130 -0
  12. data/spec/cassettes/vehicle-charge_start.yml +130 -0
  13. data/spec/cassettes/vehicle-charge_state.yml +130 -0
  14. data/spec/cassettes/vehicle-charge_stop.yml +130 -0
  15. data/spec/cassettes/vehicle-climate_state.yml +130 -0
  16. data/spec/cassettes/vehicle-door_lock.yml +130 -0
  17. data/spec/cassettes/vehicle-door_unlock.yml +130 -0
  18. data/spec/cassettes/vehicle-drive_state.yml +130 -0
  19. data/spec/cassettes/vehicle-flash_lights.yml +130 -0
  20. data/spec/cassettes/vehicle-gui_settings.yml +130 -0
  21. data/spec/cassettes/vehicle-honk_horn.yml +130 -0
  22. data/spec/cassettes/vehicle-mobile_enabled.yml +130 -0
  23. data/spec/cassettes/vehicle-open_frunk.yml +128 -0
  24. data/spec/cassettes/vehicle-open_trunk.yml +128 -0
  25. data/spec/cassettes/vehicle-remove_start_drive.yml +130 -0
  26. data/spec/cassettes/vehicle-set_charge_limit-1.yml +169 -0
  27. data/spec/cassettes/vehicle-set_charge_limit-100.yml +130 -0
  28. data/spec/cassettes/vehicle-set_charge_limit-50.yml +128 -0
  29. data/spec/cassettes/vehicle-set_charge_limit-90.yml +128 -0
  30. data/spec/cassettes/vehicle-set_temps-70-70.yml +130 -0
  31. data/spec/cassettes/vehicle-set_temps-75-65.yml +130 -0
  32. data/spec/cassettes/vehicle-sun_roof_control-close.yml +130 -0
  33. data/spec/cassettes/vehicle-sun_roof_control-comfort.yml +130 -0
  34. data/spec/cassettes/vehicle-sun_roof_control-open.yml +130 -0
  35. data/spec/cassettes/vehicle-sun_roof_control-vent.yml +130 -0
  36. data/spec/cassettes/vehicle-sun_roof_move-0.yml +130 -0
  37. data/spec/cassettes/vehicle-sun_roof_move-100.yml +130 -0
  38. data/spec/cassettes/vehicle-sun_roof_move-50.yml +130 -0
  39. data/spec/cassettes/vehicle-vehicle_state.yml +130 -0
  40. data/spec/cassettes/vehicle-wake_up.yml +130 -0
  41. data/spec/lib/tesla_api/vehicle_spec.rb +228 -0
  42. data/spec/spec_helper.rb +12 -4
  43. data/tesla_api.gemspec +2 -0
  44. metadata +102 -2
@@ -0,0 +1,130 @@
1
+ ---
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=password&client_id=<TESLA_CLIENT_ID>&client_secret=<TESLA_CLIENT_SECRET>&email=<TESLA_EMAIL>&password=<TESLA_PASS>
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Wed, 17 Dec 2014 00:43:58 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Status:
32
+ - 200 OK
33
+ Cache-Control:
34
+ - no-store
35
+ Pragma:
36
+ - no-cache
37
+ X-Ua-Compatible:
38
+ - IE=Edge,chrome=1
39
+ X-Request-Id:
40
+ - 5164c28409ad02e2a3b3548850bc74aa
41
+ X-Runtime:
42
+ - '0.539301'
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"access_token":"22dd3bbeff29a217ffb59f92a8025553e042f7ca9bcdfa09e7b12515bf4a83ff","token_type":"bearer","expires_in":7776000}'
46
+ http_version:
47
+ recorded_at: Wed, 17 Dec 2014 00:44:00 GMT
48
+ - request:
49
+ method: get
50
+ uri: https://owner-api.teslamotors.com/api/1/vehicles
51
+ body:
52
+ encoding: US-ASCII
53
+ string: ''
54
+ headers:
55
+ Authorization:
56
+ - Bearer 22dd3bbeff29a217ffb59f92a8025553e042f7ca9bcdfa09e7b12515bf4a83ff
57
+ response:
58
+ status:
59
+ code: 200
60
+ message: OK
61
+ headers:
62
+ Server:
63
+ - nginx
64
+ Date:
65
+ - Wed, 17 Dec 2014 00:43:59 GMT
66
+ Content-Type:
67
+ - application/json; charset=utf-8
68
+ Content-Length:
69
+ - '446'
70
+ Connection:
71
+ - keep-alive
72
+ Status:
73
+ - 200 OK
74
+ X-Ua-Compatible:
75
+ - IE=Edge,chrome=1
76
+ Etag:
77
+ - '"da4dacae4827973552fc7e246850f189"'
78
+ Cache-Control:
79
+ - max-age=0, private, must-revalidate
80
+ X-Request-Id:
81
+ - 42627052a0060b8acf4395da2268a36a
82
+ X-Runtime:
83
+ - '0.316035'
84
+ body:
85
+ encoding: UTF-8
86
+ string: '{"response":[{"color":null,"display_name":"Nikola","id":1514029006966957156,"option_codes":"MS01,RENA,TM00,DRLH,PF00,BT85,PBCW,RFPO,WT19,IBMB,IDPB,TR00,SU01,SC01,TP01,AU01,CH00,HP00,PA00,PS00,AD02,X020,X025,X001,X003,X007,X011,X013,COUS","vehicle_id":490215852,"vin":"5YJSA1CN5CFP01657","tokens":["493cead2e5ab6535","6b6e59059375f282"],"state":"online","remote_start_enabled":true,"calendar_enabled":true,"notifications_enabled":true}],"count":1}'
87
+ http_version:
88
+ recorded_at: Wed, 17 Dec 2014 00:44:01 GMT
89
+ - request:
90
+ method: post
91
+ uri: https://owner-api.teslamotors.com/api/1/vehicles/1514029006966957156/wake_up
92
+ body:
93
+ encoding: UTF-8
94
+ string: ''
95
+ headers:
96
+ Authorization:
97
+ - Bearer 22dd3bbeff29a217ffb59f92a8025553e042f7ca9bcdfa09e7b12515bf4a83ff
98
+ response:
99
+ status:
100
+ code: 200
101
+ message: OK
102
+ headers:
103
+ Server:
104
+ - nginx
105
+ Date:
106
+ - Wed, 17 Dec 2014 00:44:01 GMT
107
+ Content-Type:
108
+ - application/json; charset=utf-8
109
+ Content-Length:
110
+ - '434'
111
+ Connection:
112
+ - keep-alive
113
+ Status:
114
+ - 200 OK
115
+ X-Ua-Compatible:
116
+ - IE=Edge,chrome=1
117
+ Etag:
118
+ - '"81a8f0221f021e658b0cab7f4b166ae9"'
119
+ Cache-Control:
120
+ - max-age=0, private, must-revalidate
121
+ X-Request-Id:
122
+ - dbd155dcd673abdb864f62965d807bd2
123
+ X-Runtime:
124
+ - '1.249566'
125
+ body:
126
+ encoding: UTF-8
127
+ string: '{"response":{"color":null,"display_name":"Nikola","id":1514029006966957156,"option_codes":"MS01,RENA,TM00,DRLH,PF00,BT85,PBCW,RFPO,WT19,IBMB,IDPB,TR00,SU01,SC01,TP01,AU01,CH00,HP00,PA00,PS00,AD02,X020,X025,X001,X003,X007,X011,X013,COUS","vehicle_id":490215852,"vin":"5YJSA1CN5CFP01657","tokens":["493cead2e5ab6535","6b6e59059375f282"],"state":"online","remote_start_enabled":true,"calendar_enabled":true,"notifications_enabled":true}}'
128
+ http_version:
129
+ recorded_at: Wed, 17 Dec 2014 00:44:02 GMT
130
+ recorded_with: VCR 2.9.3
@@ -20,4 +20,232 @@ RSpec.describe TeslaApi::Vehicle do
20
20
  expect(vehicle.display_name).to eq("Nikola")
21
21
  end
22
22
  end
23
+
24
+ describe "#mobile_enabled", vcr: {cassette_name: "vehicle-mobile_enabled"} do
25
+ it "indicates if mobile app access is enabled" do
26
+ expect(vehicle.mobile_enabled).to eq(true)
27
+ end
28
+ end
29
+
30
+ describe "#gui_settings", vcr: {cassette_name: "vehicle-gui_settings"} do
31
+ context "details for a GUI built on the API" do
32
+ subject { vehicle.gui_settings }
33
+
34
+ it { should include("gui_charge_rate_units") }
35
+ it { should include("gui_distance_units") }
36
+ it { should include("gui_temperature_units") }
37
+ it { should include("gui_range_display") }
38
+ it { should include("gui_24_hour_time") }
39
+ end
40
+ end
41
+
42
+ describe "#charge_state", vcr: {cassette_name: "vehicle-charge_state"} do
43
+ context "data about the vehicle's charging state" do
44
+ subject { vehicle.charge_state }
45
+
46
+ it { should include("battery_level") }
47
+ it { should include("charge_rate") }
48
+ it { should include("charging_state") }
49
+ it { should include("est_battery_range") }
50
+ it { should include("fast_charger_present") }
51
+ end
52
+ end
53
+
54
+ describe "#climate_state", vcr: {cassette_name: "vehicle-climate_state"} do
55
+ context "data about the vehicle's climate controls and internal climate" do
56
+ subject { vehicle.climate_state }
57
+
58
+ it { should include("inside_temp") }
59
+ it { should include("outside_temp") }
60
+ it { should include("driver_temp_setting") }
61
+ it { should include("passenger_temp_setting") }
62
+ it { should include("is_auto_conditioning_on") }
63
+ end
64
+ end
65
+
66
+ describe "#drive_state", vcr: {cassette_name: "vehicle-drive_state"} do
67
+ context "data about the vehicle's driving state" do
68
+ subject { vehicle.drive_state }
69
+
70
+ it { should include("heading") }
71
+ it { should include("latitude") }
72
+ it { should include("longitude") }
73
+ it { should include("speed") }
74
+ end
75
+ end
76
+
77
+ describe "#vehicle_state", vcr: {cassette_name: "vehicle-vehicle_state"} do
78
+ context "data about the vehicle's overall state" do
79
+ subject { vehicle.vehicle_state }
80
+
81
+ it { should include("vehicle_name") }
82
+ it { should include("exterior_color") }
83
+ it { should include("wheel_type") }
84
+ it { should include("has_spoiler") }
85
+ it { should include("calendar_supported") }
86
+ it { should include("locked") }
87
+ end
88
+ end
89
+
90
+ describe "#wake_up", vcr: {cassette_name: "vehicle-wake_up"} do
91
+ it "wakes up the car from sleep mode" do
92
+ vehicle.wake_up
93
+ expect(vehicle.state).to eq("online")
94
+ end
95
+ end
96
+
97
+ describe "#charge_port_door_open", vcr: {cassette_name: "vehicle-charge_port_door_open"} do
98
+ it "opens the charge port door" do
99
+ expect(vehicle.charge_port_door_open["result"]).to eq(true)
100
+ end
101
+ end
102
+
103
+ describe "#charge_standard" do
104
+ it "sets the charge limit to standard (90%)", vcr: {cassette_name: "vehicle-charge_standard"} do
105
+ expect(vehicle.charge_standard["result"]).to eq(true)
106
+ end
107
+
108
+ it "doesn't set the charge rate to standard twice", vcr: {cassette_name: "vehicle-charge_standard-twice"} do
109
+ expect(vehicle.charge_standard["result"]).to eq(true)
110
+ expect(vehicle.charge_standard).to eq({"result" => false, "reason" => "already_standard"})
111
+ end
112
+ end
113
+
114
+ describe "#charge_max_range" do
115
+ it "sets the charge limit to max range (100%)", vcr: {cassette_name: "vehicle-charge_max_range"} do
116
+ expect(vehicle.charge_max_range["result"]).to eq(true)
117
+ end
118
+
119
+ it "doesn't set the charge rate to max range twice", vcr: {cassette_name: "vehicle-charge_max_range-twice"} do
120
+ expect(vehicle.charge_max_range["result"]).to eq(true)
121
+ expect(vehicle.charge_max_range).to eq({"result" => false, "reason" => "already_max_range"})
122
+ end
123
+ end
124
+
125
+ describe "#set_charge_limit" do
126
+ it "sets the charge limit to 100%", vcr: {cassette_name: "vehicle-set_charge_limit-100"} do
127
+ expect(vehicle.set_charge_limit(100)["result"]).to eq(true)
128
+ end
129
+
130
+ it "sets the charge limit to 90%", vcr: {cassette_name: "vehicle-set_charge_limit-90"} do
131
+ expect(vehicle.set_charge_limit(90)["result"]).to eq(true)
132
+ end
133
+
134
+ it "sets the charge limit to 50%", vcr: {cassette_name: "vehicle-set_charge_limit-50"} do
135
+ expect(vehicle.set_charge_limit(50)["result"]).to eq(true)
136
+ end
137
+
138
+ it "doesn't actually set the charge limit to 1%", vcr: {cassette_name: "vehicle-set_charge_limit-1"} do
139
+ expect(vehicle.set_charge_limit(1)["result"]).to eq(true)
140
+ expect(vehicle.charge_state["charge_limit_soc"]).to eq(50)
141
+ end
142
+ end
143
+
144
+ describe "#charge_start", vcr: {cassette_name: "vehicle-charge_start"} do
145
+ it "starts charging" do
146
+ expect(vehicle.charge_start["result"]).to eq(true)
147
+ end
148
+ end
149
+
150
+ describe "#charge_stop", vcr: {cassette_name: "vehicle-charge_stop"} do
151
+ it "stops charging" do
152
+ expect(vehicle.charge_stop["result"]).to eq(true)
153
+ end
154
+ end
155
+
156
+ describe "#flash_lights", vcr: {cassette_name: "vehicle-flash_lights"} do
157
+ it "flashes the vehicle's lights" do
158
+ expect(vehicle.flash_lights["result"]).to eq(true)
159
+ end
160
+ end
161
+
162
+ describe "#honk_horn", vcr: {cassette_name: "vehicle-honk_horn"} do
163
+ it "honks the vehicle's horn" do
164
+ expect(vehicle.honk_horn["result"]).to eq(true)
165
+ end
166
+ end
167
+
168
+ describe "#door_unlock", vcr: {cassette_name: "vehicle-door_unlock"} do
169
+ it "unlocks the vehicle's doors" do
170
+ expect(vehicle.door_unlock["result"]).to eq(true)
171
+ end
172
+ end
173
+
174
+ describe "#door_lock", vcr: {cassette_name: "vehicle-door_lock"} do
175
+ it "locks the vehicle's doors" do
176
+ expect(vehicle.door_lock["result"]).to eq(true)
177
+ end
178
+ end
179
+
180
+ describe "#set_temps" do
181
+ it "sets the desired temperature in the car to 70", vcr: {cassette_name: "vehicle-set_temps-70-70"} do
182
+ expect(vehicle.set_temps(20.9, 20.9)["result"]).to eq(true)
183
+ end
184
+
185
+ it "sets the desired temperature in the car to 75 and 65", vcr: {cassette_name: "vehicle-set_temps-75-65"} do
186
+ expect(vehicle.set_temps(23.7, 23.7)["result"]).to eq(true)
187
+ end
188
+ end
189
+
190
+ describe "#auto_conditioning_start", vcr: {cassette_name: "vehicle-auto_conditioning_start"} do
191
+ it "starts the HVAC system" do
192
+ expect(vehicle.auto_conditioning_start["result"]).to eq(true)
193
+ end
194
+ end
195
+
196
+ describe "#auto_conditioning_stop", vcr: {cassette_name: "vehicle-auto_conditioning_stop"} do
197
+ it "stops the HVAC system" do
198
+ expect(vehicle.auto_conditioning_stop["result"]).to eq(true)
199
+ end
200
+ end
201
+
202
+ describe "#sun_roof_control" do
203
+ it "opens the sun roof", vcr: {cassette_name: "vehicle-sun_roof_control-open"} do
204
+ expect(vehicle.sun_roof_control("open")["result"]).to eq(true)
205
+ end
206
+
207
+ it "closes the sun roof", vcr: {cassette_name: "vehicle-sun_roof_control-close"} do
208
+ expect(vehicle.sun_roof_control("close")["result"]).to eq(true)
209
+ end
210
+
211
+ it "vents the sun roof", vcr: {cassette_name: "vehicle-sun_roof_control-vent"} do
212
+ expect(vehicle.sun_roof_control("vent")["result"]).to eq(true)
213
+ end
214
+
215
+ it "sets the sun roof to the comfort (80%) setting", vcr: {cassette_name: "vehicle-sun_roof_control-comfort"} do
216
+ expect(vehicle.sun_roof_control("comfort")["result"]).to eq(true)
217
+ end
218
+ end
219
+
220
+ describe "#sun_roof_move" do
221
+ it "moves the sun roof to 100% open", vcr: {cassette_name: "vehicle-sun_roof_move-100"} do
222
+ expect(vehicle.sun_roof_move(100)["result"]).to eq(true)
223
+ end
224
+
225
+ it "moves the sun roof to closed", vcr: {cassette_name: "vehicle-sun_roof_move-0"} do
226
+ expect(vehicle.sun_roof_move(0)["result"]).to eq(true)
227
+ end
228
+
229
+ it "moves the sun roof to 50% open", vcr: {cassette_name: "vehicle-sun_roof_move-50"} do
230
+ expect(vehicle.sun_roof_move(50)["result"]).to eq(true)
231
+ end
232
+ end
233
+
234
+ describe "#remove_start_drive", vcr: {cassette_name: "vehicle-remove_start_drive"} do
235
+ it "starts the vehicle's keyless driving mode" do
236
+ expect(vehicle.remove_start_drive("elon4eva")["result"]).to eq(true)
237
+ end
238
+ end
239
+
240
+ describe "#open_trunk", vcr: {cassette_name: "vehicle-open_trunk"} do
241
+ it "opens the trunk" do
242
+ expect(vehicle.open_trunk["error"]).to eq("invalid_command")
243
+ end
244
+ end
245
+
246
+ describe "#open_frunk", vcr: {cassette_name: "vehicle-open_frunk"} do
247
+ it "opens the frunk" do
248
+ expect(vehicle.open_frunk["error"]).to eq("invalid_command")
249
+ end
250
+ end
23
251
  end
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,23 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ SimpleCov.formatters = [
5
+ SimpleCov::Formatter::HTMLFormatter,
6
+ Coveralls::SimpleCov::Formatter
7
+ ]
8
+ SimpleCov.start do
9
+ add_filter 'spec'
10
+ end
11
+ Coveralls::Output.silent = true
12
+
1
13
  require 'dotenv'
2
14
  require 'vcr'
3
15
  require 'webmock/rspec'
4
- require 'coveralls'
5
16
 
6
17
  require 'tesla_api'
7
18
 
8
19
  Dotenv.load
9
20
 
10
- Coveralls::Output.silent = true
11
- Coveralls.wear!
12
-
13
21
  VCR.configure do |c|
14
22
  c.cassette_library_dir = "spec/cassettes"
15
23
  c.hook_into :webmock
data/tesla_api.gemspec CHANGED
@@ -26,4 +26,6 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "vcr", "~> 2.9"
27
27
  spec.add_development_dependency "webmock", "~> 1.20"
28
28
  spec.add_development_dependency "dotenv", "~> 1.0"
29
+ spec.add_development_dependency "simplecov", "~> 0.9"
30
+ spec.add_development_dependency "coveralls"
29
31
  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: 0.9.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Dorr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-15 00:00:00.000000000 Z
11
+ date: 2014-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -122,6 +122,34 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '1.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.9'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0.9'
139
+ - !ruby/object:Gem::Dependency
140
+ name: coveralls
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
125
153
  description: Check the state of your Tesla Model S and issue basic commands. Stream
126
154
  data from the car's telematics system.
127
155
  email:
@@ -144,6 +172,42 @@ files:
144
172
  - lib/tesla_api/version.rb
145
173
  - spec/cassettes/client-initialize.yml
146
174
  - spec/cassettes/client-vehicles.yml
175
+ - spec/cassettes/vehicle-auto_conditioning_start.yml
176
+ - spec/cassettes/vehicle-auto_conditioning_stop.yml
177
+ - spec/cassettes/vehicle-charge_max_range-twice.yml
178
+ - spec/cassettes/vehicle-charge_max_range.yml
179
+ - spec/cassettes/vehicle-charge_port_door_open.yml
180
+ - spec/cassettes/vehicle-charge_standard-twice.yml
181
+ - spec/cassettes/vehicle-charge_standard.yml
182
+ - spec/cassettes/vehicle-charge_start.yml
183
+ - spec/cassettes/vehicle-charge_state.yml
184
+ - spec/cassettes/vehicle-charge_stop.yml
185
+ - spec/cassettes/vehicle-climate_state.yml
186
+ - spec/cassettes/vehicle-door_lock.yml
187
+ - spec/cassettes/vehicle-door_unlock.yml
188
+ - spec/cassettes/vehicle-drive_state.yml
189
+ - spec/cassettes/vehicle-flash_lights.yml
190
+ - spec/cassettes/vehicle-gui_settings.yml
191
+ - spec/cassettes/vehicle-honk_horn.yml
192
+ - spec/cassettes/vehicle-mobile_enabled.yml
193
+ - spec/cassettes/vehicle-open_frunk.yml
194
+ - spec/cassettes/vehicle-open_trunk.yml
195
+ - spec/cassettes/vehicle-remove_start_drive.yml
196
+ - spec/cassettes/vehicle-set_charge_limit-1.yml
197
+ - spec/cassettes/vehicle-set_charge_limit-100.yml
198
+ - spec/cassettes/vehicle-set_charge_limit-50.yml
199
+ - spec/cassettes/vehicle-set_charge_limit-90.yml
200
+ - spec/cassettes/vehicle-set_temps-70-70.yml
201
+ - spec/cassettes/vehicle-set_temps-75-65.yml
202
+ - spec/cassettes/vehicle-sun_roof_control-close.yml
203
+ - spec/cassettes/vehicle-sun_roof_control-comfort.yml
204
+ - spec/cassettes/vehicle-sun_roof_control-open.yml
205
+ - spec/cassettes/vehicle-sun_roof_control-vent.yml
206
+ - spec/cassettes/vehicle-sun_roof_move-0.yml
207
+ - spec/cassettes/vehicle-sun_roof_move-100.yml
208
+ - spec/cassettes/vehicle-sun_roof_move-50.yml
209
+ - spec/cassettes/vehicle-vehicle_state.yml
210
+ - spec/cassettes/vehicle-wake_up.yml
147
211
  - spec/cassettes/vehicle.yml
148
212
  - spec/lib/tesla_api/client_spec.rb
149
213
  - spec/lib/tesla_api/vehicle_spec.rb
@@ -176,6 +240,42 @@ summary: A wrapper for the Tesla API
176
240
  test_files:
177
241
  - spec/cassettes/client-initialize.yml
178
242
  - spec/cassettes/client-vehicles.yml
243
+ - spec/cassettes/vehicle-auto_conditioning_start.yml
244
+ - spec/cassettes/vehicle-auto_conditioning_stop.yml
245
+ - spec/cassettes/vehicle-charge_max_range-twice.yml
246
+ - spec/cassettes/vehicle-charge_max_range.yml
247
+ - spec/cassettes/vehicle-charge_port_door_open.yml
248
+ - spec/cassettes/vehicle-charge_standard-twice.yml
249
+ - spec/cassettes/vehicle-charge_standard.yml
250
+ - spec/cassettes/vehicle-charge_start.yml
251
+ - spec/cassettes/vehicle-charge_state.yml
252
+ - spec/cassettes/vehicle-charge_stop.yml
253
+ - spec/cassettes/vehicle-climate_state.yml
254
+ - spec/cassettes/vehicle-door_lock.yml
255
+ - spec/cassettes/vehicle-door_unlock.yml
256
+ - spec/cassettes/vehicle-drive_state.yml
257
+ - spec/cassettes/vehicle-flash_lights.yml
258
+ - spec/cassettes/vehicle-gui_settings.yml
259
+ - spec/cassettes/vehicle-honk_horn.yml
260
+ - spec/cassettes/vehicle-mobile_enabled.yml
261
+ - spec/cassettes/vehicle-open_frunk.yml
262
+ - spec/cassettes/vehicle-open_trunk.yml
263
+ - spec/cassettes/vehicle-remove_start_drive.yml
264
+ - spec/cassettes/vehicle-set_charge_limit-1.yml
265
+ - spec/cassettes/vehicle-set_charge_limit-100.yml
266
+ - spec/cassettes/vehicle-set_charge_limit-50.yml
267
+ - spec/cassettes/vehicle-set_charge_limit-90.yml
268
+ - spec/cassettes/vehicle-set_temps-70-70.yml
269
+ - spec/cassettes/vehicle-set_temps-75-65.yml
270
+ - spec/cassettes/vehicle-sun_roof_control-close.yml
271
+ - spec/cassettes/vehicle-sun_roof_control-comfort.yml
272
+ - spec/cassettes/vehicle-sun_roof_control-open.yml
273
+ - spec/cassettes/vehicle-sun_roof_control-vent.yml
274
+ - spec/cassettes/vehicle-sun_roof_move-0.yml
275
+ - spec/cassettes/vehicle-sun_roof_move-100.yml
276
+ - spec/cassettes/vehicle-sun_roof_move-50.yml
277
+ - spec/cassettes/vehicle-vehicle_state.yml
278
+ - spec/cassettes/vehicle-wake_up.yml
179
279
  - spec/cassettes/vehicle.yml
180
280
  - spec/lib/tesla_api/client_spec.rb
181
281
  - spec/lib/tesla_api/vehicle_spec.rb