tesla_api 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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