tesla_api 1.2.0 → 1.3.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 (56) hide show
  1. checksums.yaml +5 -5
  2. data/.gitbook.yml +4 -0
  3. data/.travis.yml +3 -4
  4. data/LICENSE +1 -1
  5. data/README.md +7 -3
  6. data/Rakefile +27 -1
  7. data/apiary.apib +21 -14
  8. data/docs/README.md +26 -0
  9. data/docs/SUMMARY.md +39 -0
  10. data/docs/api-basics/authentication.md +40 -0
  11. data/docs/api-basics/vehicles.md +77 -0
  12. data/docs/vehicle/autopark.md +4 -0
  13. data/docs/vehicle/commands/README.md +22 -0
  14. data/docs/vehicle/commands/alerts.md +5 -0
  15. data/docs/vehicle/commands/calendar.md +3 -0
  16. data/docs/vehicle/commands/charging.md +3 -0
  17. data/docs/vehicle/commands/climate.md +3 -0
  18. data/docs/vehicle/commands/doors.md +3 -0
  19. data/docs/vehicle/commands/media.md +3 -0
  20. data/docs/vehicle/commands/navigation.md +3 -0
  21. data/docs/vehicle/commands/remotestart.md +3 -0
  22. data/docs/vehicle/commands/softwareupdate.md +3 -0
  23. data/docs/vehicle/commands/speedlimit.md +3 -0
  24. data/docs/vehicle/commands/sunroof.md +3 -0
  25. data/docs/vehicle/commands/trunk.md +3 -0
  26. data/docs/vehicle/commands/valet.md +3 -0
  27. data/docs/vehicle/commands/wake.md +3 -0
  28. data/docs/vehicle/optioncodes.md +253 -0
  29. data/docs/vehicle/state/README.md +34 -0
  30. data/docs/vehicle/state/chargestate.md +56 -0
  31. data/docs/vehicle/state/climatestate.md +43 -0
  32. data/docs/vehicle/state/data.md +181 -0
  33. data/docs/vehicle/state/drivestate.md +27 -0
  34. data/docs/vehicle/state/guisettings.md +21 -0
  35. data/docs/vehicle/state/mobileenabled.md +14 -0
  36. data/docs/vehicle/state/vehiclestate.md +47 -0
  37. data/docs/vehicle/streaming.md +4 -0
  38. data/lib/tesla_api.rb +7 -6
  39. data/lib/tesla_api/autopark.rb +62 -0
  40. data/lib/tesla_api/client.rb +32 -11
  41. data/lib/tesla_api/stream.rb +11 -7
  42. data/lib/tesla_api/vehicle.rb +50 -30
  43. data/lib/tesla_api/version.rb +1 -1
  44. data/spec/cassettes/client-login.yml +1 -1
  45. data/spec/cassettes/vehicle-activate_speed_limit.yml +95 -0
  46. data/spec/cassettes/vehicle-clear_speed_limit_pin.yml +95 -0
  47. data/spec/cassettes/vehicle-deactivate_speed_limit.yml +95 -0
  48. data/spec/cassettes/vehicle-open_frunk.yml +40 -73
  49. data/spec/cassettes/vehicle-open_trunk.yml +40 -73
  50. data/spec/cassettes/vehicle-set_speed_limit.yml +95 -0
  51. data/spec/lib/tesla_api/client_spec.rb +42 -15
  52. data/spec/lib/tesla_api/vehicle_spec.rb +160 -136
  53. data/spec/spec_helper.rb +6 -18
  54. data/tesla_api.gemspec +20 -24
  55. metadata +67 -42
  56. data/circle.yml +0 -10
data/spec/spec_helper.rb CHANGED
@@ -1,15 +1,3 @@
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
-
13
1
  require 'dotenv'
14
2
  require 'faker'
15
3
  require 'vcr'
@@ -20,16 +8,16 @@ require 'tesla_api'
20
8
  Dotenv.load
21
9
 
22
10
  VCR.configure do |c|
23
- c.cassette_library_dir = "spec/cassettes"
11
+ c.cassette_library_dir = 'spec/cassettes'
24
12
  c.hook_into :webmock
25
13
  c.default_cassette_options = {:record => :once}
26
14
  c.configure_rspec_metadata!
27
15
 
28
- c.define_cassette_placeholder("<TESLA_EMAIL>") { CGI::escape(ENV["TESLA_EMAIL"]) }
29
- c.define_cassette_placeholder("<TESLA_PASS>") { ENV["TESLA_PASS"] }
30
- c.define_cassette_placeholder("<TESLA_CLIENT_ID>") { ENV["TESLA_CLIENT_ID"] }
31
- c.define_cassette_placeholder("<TESLA_CLIENT_SECRET>") { ENV["TESLA_CLIENT_SECRET"] }
32
- c.define_cassette_placeholder("<TESLA_API_TOKEN>") { ENV["TESLA_API_TOKEN"] }
16
+ c.define_cassette_placeholder('<TESLA_EMAIL>') { CGI::escape(ENV['TESLA_EMAIL']) }
17
+ c.define_cassette_placeholder('<TESLA_PASS>') { ENV['TESLA_PASS'] }
18
+ c.define_cassette_placeholder('<TESLA_CLIENT_ID>') { ENV['TESLA_CLIENT_ID'] }
19
+ c.define_cassette_placeholder('<TESLA_CLIENT_SECRET>') { ENV['TESLA_CLIENT_SECRET'] }
20
+ c.define_cassette_placeholder('<TESLA_API_TOKEN>') { ENV['TESLA_API_TOKEN'] }
33
21
  end
34
22
 
35
23
  RSpec.configure do |config|
data/tesla_api.gemspec CHANGED
@@ -1,32 +1,28 @@
1
- lib = File.expand_path('../lib', __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'tesla_api/version'
1
+ require File.expand_path('../lib/tesla_api/version', __FILE__)
4
2
 
5
3
  Gem::Specification.new do |spec|
6
- spec.name = "tesla_api"
4
+ spec.name = 'tesla_api'
7
5
  spec.version = TeslaApi::VERSION
8
- spec.authors = ["Tim Dorr"]
9
- spec.email = ["timdorr@timdorr.com"]
10
- spec.summary = %q{A wrapper for the Tesla API}
11
- spec.description = %q{Check the state of your Tesla Model S and issue basic commands. Stream data from the car's telematics system.}
12
- spec.homepage = "https://github.com/timdorr/model-s-api"
13
- spec.license = "MIT"
6
+ spec.authors = ['Tim Dorr']
7
+ spec.email = ['timdorr@timdorr.com']
8
+ spec.summary = 'A wrapper for the Tesla JSON API'
9
+ spec.description = "Check the state of your Tesla Model S and issue basic commands. Stream data from the car's telematics system."
10
+ spec.homepage = 'https://github.com/timdorr/tesla-api'
11
+ spec.license = 'MIT'
14
12
 
15
- spec.files = `git ls-files -z`.split("\x0")
16
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
13
+ spec.files = `git ls-files -z`.split("\0")
17
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
- spec.require_paths = ["lib"]
15
+ spec.require_paths = ['lib']
19
16
 
20
- spec.add_dependency "httparty"
21
- spec.add_dependency "em-http-request"
17
+ spec.add_dependency 'httparty'
18
+ spec.add_dependency 'faye-websocket'
19
+ spec.add_dependency 'em-http-request'
22
20
 
23
- spec.add_development_dependency "bundler", "~> 1.7"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec", "~> 3.1"
26
- spec.add_development_dependency "faker", "~> 1.4"
27
- spec.add_development_dependency "vcr", "~> 2.9"
28
- spec.add_development_dependency "webmock", "~> 1.20"
29
- spec.add_development_dependency "dotenv", "~> 1.0"
30
- spec.add_development_dependency "simplecov", "~> 0.9"
31
- spec.add_development_dependency "coveralls"
21
+ spec.add_development_dependency 'bundler', '~> 1.7'
22
+ spec.add_development_dependency 'rake', '~> 12.0'
23
+ spec.add_development_dependency 'rspec', '~> 3.1'
24
+ spec.add_development_dependency 'faker', '~> 1.4'
25
+ spec.add_development_dependency 'vcr', '~> 4.0'
26
+ spec.add_development_dependency 'webmock', '~> 3.0'
27
+ spec.add_development_dependency 'dotenv', '~> 2.0'
32
28
  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: 1.2.0
4
+ version: 1.3.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: 2016-01-23 00:00:00.000000000 Z
11
+ date: 2018-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faye-websocket
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: em-http-request
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +72,14 @@ dependencies:
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '10.0'
75
+ version: '12.0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '10.0'
82
+ version: '12.0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,70 +114,42 @@ dependencies:
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: '2.9'
117
+ version: '4.0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: '2.9'
124
+ version: '4.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: webmock
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - "~>"
116
130
  - !ruby/object:Gem::Version
117
- version: '1.20'
131
+ version: '3.0'
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - "~>"
123
137
  - !ruby/object:Gem::Version
124
- version: '1.20'
138
+ version: '3.0'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: dotenv
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '1.0'
145
+ version: '2.0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '1.0'
139
- - !ruby/object:Gem::Dependency
140
- name: simplecov
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '0.9'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '0.9'
153
- - !ruby/object:Gem::Dependency
154
- name: coveralls
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
152
+ version: '2.0'
167
153
  description: Check the state of your Tesla Model S and issue basic commands. Stream
168
154
  data from the car's telematics system.
169
155
  email:
@@ -172,6 +158,7 @@ executables: []
172
158
  extensions: []
173
159
  extra_rdoc_files: []
174
160
  files:
161
+ - ".gitbook.yml"
175
162
  - ".gitignore"
176
163
  - ".rspec"
177
164
  - ".travis.yml"
@@ -180,14 +167,45 @@ files:
180
167
  - README.md
181
168
  - Rakefile
182
169
  - apiary.apib
183
- - circle.yml
170
+ - docs/README.md
171
+ - docs/SUMMARY.md
172
+ - docs/api-basics/authentication.md
173
+ - docs/api-basics/vehicles.md
174
+ - docs/vehicle/autopark.md
175
+ - docs/vehicle/commands/README.md
176
+ - docs/vehicle/commands/alerts.md
177
+ - docs/vehicle/commands/calendar.md
178
+ - docs/vehicle/commands/charging.md
179
+ - docs/vehicle/commands/climate.md
180
+ - docs/vehicle/commands/doors.md
181
+ - docs/vehicle/commands/media.md
182
+ - docs/vehicle/commands/navigation.md
183
+ - docs/vehicle/commands/remotestart.md
184
+ - docs/vehicle/commands/softwareupdate.md
185
+ - docs/vehicle/commands/speedlimit.md
186
+ - docs/vehicle/commands/sunroof.md
187
+ - docs/vehicle/commands/trunk.md
188
+ - docs/vehicle/commands/valet.md
189
+ - docs/vehicle/commands/wake.md
190
+ - docs/vehicle/optioncodes.md
191
+ - docs/vehicle/state/README.md
192
+ - docs/vehicle/state/chargestate.md
193
+ - docs/vehicle/state/climatestate.md
194
+ - docs/vehicle/state/data.md
195
+ - docs/vehicle/state/drivestate.md
196
+ - docs/vehicle/state/guisettings.md
197
+ - docs/vehicle/state/mobileenabled.md
198
+ - docs/vehicle/state/vehiclestate.md
199
+ - docs/vehicle/streaming.md
184
200
  - lib/tesla_api.rb
201
+ - lib/tesla_api/autopark.rb
185
202
  - lib/tesla_api/client.rb
186
203
  - lib/tesla_api/stream.rb
187
204
  - lib/tesla_api/vehicle.rb
188
205
  - lib/tesla_api/version.rb
189
206
  - spec/cassettes/client-login.yml
190
207
  - spec/cassettes/client-vehicles.yml
208
+ - spec/cassettes/vehicle-activate_speed_limit.yml
191
209
  - spec/cassettes/vehicle-auto_conditioning_start.yml
192
210
  - spec/cassettes/vehicle-auto_conditioning_stop.yml
193
211
  - spec/cassettes/vehicle-charge_max_range-twice.yml
@@ -198,7 +216,9 @@ files:
198
216
  - spec/cassettes/vehicle-charge_start.yml
199
217
  - spec/cassettes/vehicle-charge_state.yml
200
218
  - spec/cassettes/vehicle-charge_stop.yml
219
+ - spec/cassettes/vehicle-clear_speed_limit_pin.yml
201
220
  - spec/cassettes/vehicle-climate_state.yml
221
+ - spec/cassettes/vehicle-deactivate_speed_limit.yml
202
222
  - spec/cassettes/vehicle-door_lock.yml
203
223
  - spec/cassettes/vehicle-door_unlock.yml
204
224
  - spec/cassettes/vehicle-drive_state.yml
@@ -214,6 +234,7 @@ files:
214
234
  - spec/cassettes/vehicle-set_charge_limit-100.yml
215
235
  - spec/cassettes/vehicle-set_charge_limit-50.yml
216
236
  - spec/cassettes/vehicle-set_charge_limit-90.yml
237
+ - spec/cassettes/vehicle-set_speed_limit.yml
217
238
  - spec/cassettes/vehicle-set_temps-70-70.yml
218
239
  - spec/cassettes/vehicle-set_temps-75-65.yml
219
240
  - spec/cassettes/vehicle-set_valet_mode.yml
@@ -231,7 +252,7 @@ files:
231
252
  - spec/lib/tesla_api/vehicle_spec.rb
232
253
  - spec/spec_helper.rb
233
254
  - tesla_api.gemspec
234
- homepage: https://github.com/timdorr/model-s-api
255
+ homepage: https://github.com/timdorr/tesla-api
235
256
  licenses:
236
257
  - MIT
237
258
  metadata: {}
@@ -251,13 +272,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
272
  version: '0'
252
273
  requirements: []
253
274
  rubyforge_project:
254
- rubygems_version: 2.4.8
275
+ rubygems_version: 2.7.7
255
276
  signing_key:
256
277
  specification_version: 4
257
- summary: A wrapper for the Tesla API
278
+ summary: A wrapper for the Tesla JSON API
258
279
  test_files:
259
280
  - spec/cassettes/client-login.yml
260
281
  - spec/cassettes/client-vehicles.yml
282
+ - spec/cassettes/vehicle-activate_speed_limit.yml
261
283
  - spec/cassettes/vehicle-auto_conditioning_start.yml
262
284
  - spec/cassettes/vehicle-auto_conditioning_stop.yml
263
285
  - spec/cassettes/vehicle-charge_max_range-twice.yml
@@ -268,7 +290,9 @@ test_files:
268
290
  - spec/cassettes/vehicle-charge_start.yml
269
291
  - spec/cassettes/vehicle-charge_state.yml
270
292
  - spec/cassettes/vehicle-charge_stop.yml
293
+ - spec/cassettes/vehicle-clear_speed_limit_pin.yml
271
294
  - spec/cassettes/vehicle-climate_state.yml
295
+ - spec/cassettes/vehicle-deactivate_speed_limit.yml
272
296
  - spec/cassettes/vehicle-door_lock.yml
273
297
  - spec/cassettes/vehicle-door_unlock.yml
274
298
  - spec/cassettes/vehicle-drive_state.yml
@@ -284,6 +308,7 @@ test_files:
284
308
  - spec/cassettes/vehicle-set_charge_limit-100.yml
285
309
  - spec/cassettes/vehicle-set_charge_limit-50.yml
286
310
  - spec/cassettes/vehicle-set_charge_limit-90.yml
311
+ - spec/cassettes/vehicle-set_speed_limit.yml
287
312
  - spec/cassettes/vehicle-set_temps-70-70.yml
288
313
  - spec/cassettes/vehicle-set_temps-75-65.yml
289
314
  - spec/cassettes/vehicle-set_valet_mode.yml
data/circle.yml DELETED
@@ -1,10 +0,0 @@
1
- machine:
2
- ruby:
3
- version:
4
- 2.3.0
5
- environment:
6
- TESLA_EMAIL: elon.musk@teslamotors.com
7
- TESLA_PASS: oilLOL
8
- TESLA_CLIENT_ID: 1
9
- TESLA_CLIENT_SECRET: 2
10
- TESLA_API_TOKEN: 3