evohome 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 244625f68b6977510d26bec4656c22c2c2be242c
4
+ data.tar.gz: 96a35c63a30b05fec18e701f625fb2ba66b88040
5
+ SHA512:
6
+ metadata.gz: 98749d9f623392716ef1f579ddbf1db6c51c32576731cbb6dea436b5528ddefbcb81e4f3d5f2eceb09de96d6bf643de2a59c46a8adc262799783afe41c5694bf
7
+ data.tar.gz: f414679fa8ffe498da4a2cc6cc0812edad090a9c7aaeba50e213e2692abeceaa27f8ae7aac2923f2503427a947c46f92a41deffac4348ff7d6812bc5974d8275
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.4.2
5
+ before_install: gem install bundler -v 1.16.0
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ # Specify your gem's dependencies in evohome.gemspec
6
+ gemspec
@@ -0,0 +1,56 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ evohome (1.0.0)
5
+ httparty (~> 0.15.6)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ addressable (2.5.2)
11
+ public_suffix (>= 2.0.2, < 4.0)
12
+ crack (0.4.3)
13
+ safe_yaml (~> 1.0.0)
14
+ diff-lcs (1.3)
15
+ hashdiff (0.3.7)
16
+ httparty (0.15.6)
17
+ multi_xml (>= 0.5.2)
18
+ multi_xml (0.6.0)
19
+ public_suffix (3.0.1)
20
+ rake (10.4.2)
21
+ rspec (3.7.0)
22
+ rspec-core (~> 3.7.0)
23
+ rspec-expectations (~> 3.7.0)
24
+ rspec-mocks (~> 3.7.0)
25
+ rspec-collection_matchers (1.1.3)
26
+ rspec-expectations (>= 2.99.0.beta1)
27
+ rspec-core (3.7.0)
28
+ rspec-support (~> 3.7.0)
29
+ rspec-expectations (3.7.0)
30
+ diff-lcs (>= 1.2.0, < 2.0)
31
+ rspec-support (~> 3.7.0)
32
+ rspec-mocks (3.7.0)
33
+ diff-lcs (>= 1.2.0, < 2.0)
34
+ rspec-support (~> 3.7.0)
35
+ rspec-support (3.7.0)
36
+ safe_yaml (1.0.4)
37
+ vcr (4.0.0)
38
+ webmock (3.1.1)
39
+ addressable (>= 2.3.6)
40
+ crack (>= 0.3.2)
41
+ hashdiff
42
+
43
+ PLATFORMS
44
+ ruby
45
+
46
+ DEPENDENCIES
47
+ bundler (~> 1.16)
48
+ evohome!
49
+ rake (~> 10.0)
50
+ rspec (~> 3.0)
51
+ rspec-collection_matchers (~> 1.1)
52
+ vcr (~> 4.0)
53
+ webmock (~> 3.1)
54
+
55
+ BUNDLED WITH
56
+ 1.16.0
@@ -0,0 +1,59 @@
1
+ # Evohome
2
+
3
+ This gets all temperatures from you Evohome, it only reads the temperature and setpoint for now.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'evohome'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install evohome
20
+
21
+ ## Usage
22
+
23
+ ```ruby
24
+ require "evohome"
25
+
26
+ email = "email@example.com"
27
+ password = "secret"
28
+ application_id = "application_id"
29
+
30
+ evohome = Evohome.new(username: email, password: password, application_id: application_id)
31
+ evohome.connect!
32
+
33
+ loop do
34
+ values = evohome.thermostats.map { |t| t.inspect }
35
+ system 'clear'
36
+ puts values
37
+ sleep 10
38
+ end
39
+
40
+ # <thermostat name='Badkamer' temperature='19.16' temperature_setpoint='18.0'">
41
+ # <thermostat name='Fien' temperature='17.0' temperature_setpoint='16.0'">
42
+ # <thermostat name='Hal' temperature='20.96' temperature_setpoint='21.0'">
43
+ # <thermostat name='Kantoor' temperature='10.14' temperature_setpoint='20.5'">
44
+ # <thermostat name='Keuken' temperature='18.51' temperature_setpoint='22.0'">
45
+ # <thermostat name='Slaapkamer' temperature='11.17' temperature_setpoint='7.5'">
46
+ # <thermostat name='Soof' temperature='12.97' temperature_setpoint='10.0'">
47
+ # <thermostat name='Washok' temperature='12.09' temperature_setpoint='10.0'">
48
+ # <thermostat name='Woonkamer' temperature='21.06' temperature_setpoint='22.5'">
49
+ ```
50
+
51
+ ## Development
52
+
53
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
54
+
55
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
56
+
57
+ ## Contributing
58
+
59
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/evohome.
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "evohome"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,30 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "evohome/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "evohome"
8
+ spec.version = Evohome::VERSION
9
+ spec.authors = ["Jankees van Woezik"]
10
+ spec.email = ["mail@jankeesvw.com"]
11
+
12
+ spec.summary = %q{A gem to read temperature data from Honeywell's Evohome API}
13
+ spec.description = %q{A gem to read temperature data from Honeywell's Evohome API}
14
+ spec.homepage = "https://github.com/jankeesvw/evohome"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ f.match(%r{^(test|spec|features)/})
18
+ end
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.16"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec", "~> 3.0"
26
+ spec.add_development_dependency "vcr", "~> 4.0"
27
+ spec.add_development_dependency "webmock", "~> 3.1"
28
+ spec.add_development_dependency "rspec-collection_matchers", "~> 1.1"
29
+ spec.add_dependency "httparty", "~> 0.15.6"
30
+ end
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "evohome"
4
+
5
+ Evohome.new
@@ -0,0 +1,52 @@
1
+ require "evohome/version"
2
+ require "httparty"
3
+
4
+ class Evohome
5
+ attr_accessor :sessionid
6
+ attr_accessor :user_id
7
+
8
+ def initialize(username: nil, password: nil, application_id: nil)
9
+ @username = username
10
+ @password = password
11
+ @application_id = application_id
12
+ end
13
+
14
+ def connect!
15
+ response = HTTParty.post("https://tccna.honeywell.com/WebAPI/api/Session",
16
+ body: { "username" => @username,
17
+ "password" => @password,
18
+ "ApplicationId" => @application_id }.to_json,
19
+ headers: { "Content-Type" => "application/json" })
20
+
21
+ @sessionid = response["sessionId"]
22
+ @user_id = response["userInfo"]["userID"]
23
+
24
+ self
25
+ end
26
+
27
+ def thermostats
28
+ url = "https://tccna.honeywell.com/WebAPI/api/locations?userId=#{@user_id}&allData=True"
29
+
30
+ response = HTTParty.get(url,
31
+ headers: {
32
+ "Content-Type" => "application/json",
33
+ "sessionID" => @sessionid,
34
+ })
35
+
36
+ response.first["devices"].map { |d| Thermostat.new(d) }
37
+ end
38
+
39
+ class Thermostat
40
+ attr_accessor :name, :temperature, :temperature_setpoint
41
+
42
+ def initialize(data)
43
+ @name = data["name"]
44
+ @temperature = data["thermostat"]["indoorTemperature"]
45
+ @temperature_setpoint = data["thermostat"]["changeableValues"]["heatSetpoint"]["value"]
46
+ end
47
+
48
+ def inspect
49
+ "<thermostat name='#{name}' temperature='#{temperature}' temperature_setpoint='#{temperature_setpoint}'>"
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,3 @@
1
+ class Evohome
2
+ VERSION = "1.0.0"
3
+ end
metadata ADDED
@@ -0,0 +1,155 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: evohome
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jankees van Woezik
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-12-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: vcr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: webmock
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-collection_matchers
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: httparty
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.15.6
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.15.6
111
+ description: A gem to read temperature data from Honeywell's Evohome API
112
+ email:
113
+ - mail@jankeesvw.com
114
+ executables:
115
+ - evohome
116
+ extensions: []
117
+ extra_rdoc_files: []
118
+ files:
119
+ - ".gitignore"
120
+ - ".rspec"
121
+ - ".travis.yml"
122
+ - Gemfile
123
+ - Gemfile.lock
124
+ - README.md
125
+ - Rakefile
126
+ - bin/console
127
+ - bin/setup
128
+ - evohome.gemspec
129
+ - exe/evohome
130
+ - lib/evohome.rb
131
+ - lib/evohome/version.rb
132
+ homepage: https://github.com/jankeesvw/evohome
133
+ licenses: []
134
+ metadata: {}
135
+ post_install_message:
136
+ rdoc_options: []
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ requirements: []
150
+ rubyforge_project:
151
+ rubygems_version: 2.6.13
152
+ signing_key:
153
+ specification_version: 4
154
+ summary: A gem to read temperature data from Honeywell's Evohome API
155
+ test_files: []