lifx_dash 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9c90fc97d3bb2f4215218815b7697a8315026a03
4
- data.tar.gz: 71bdddb56b295d00a7757be236caed3cc95a93d3
2
+ SHA256:
3
+ metadata.gz: ca51794c2ebf07f04ff3f7f44f811fe32a0f1d559a315b1045055984165c7d9f
4
+ data.tar.gz: e1b3d10dff9420244c6d1fe2a02ac5c5476ea8a576a4511e01acd1fb870a6abe
5
5
  SHA512:
6
- metadata.gz: ccf8e41e3db5e3bcf6a0e7f8e2449f0139f3de606a3260b066b49aa0cb44c5b0e2d3beaf41e5df839992d18f5bb535405bcd02480039e7c72ed66438cae03837
7
- data.tar.gz: 1b0f089fcdabd020fbd60503bdff78b8651220555e056c426a55877aba86a033b68da10301a2d232f057fb4d4e39f90f7b5f2f4888f2cb41d85ed4eec216cac9
6
+ metadata.gz: bbbf9032c429cfa4201f41eae6b4562584e55024a95d719edb44f6eb42bcb46d0c2a6dc876ae68fae2cf1d393046f1180b229ec23b2d778357bfdc1ee798caf5
7
+ data.tar.gz: e4398d1c6f2b1bb3432c2393437bccc82cee0bd421e6ed111330c217f5f13fbb77a1a8246eda80c48c47f1b592ebb4308f0eb78e320d26116983c8e93c031727
@@ -1,15 +1,16 @@
1
1
  sudo: required
2
2
  language: ruby
3
3
  before_install:
4
- - sudo apt-get install libpcap-dev -qq
5
- - gem update --system
6
- - gem --version
4
+ - sudo apt-get install libpcap-dev -qq
5
+ - gem update --system
6
+ - gem --version
7
7
  rvm:
8
- - 2.1.10
9
- - 2.2.7
10
- - 2.3.4
11
- - 2.4.1
12
- - ruby-head
8
+ - 2.1.10
9
+ - 2.2.9
10
+ - 2.3.6
11
+ - 2.4.3
12
+ - 2.5.0
13
+ - ruby-head
13
14
  matrix:
14
15
  allow_failures:
15
16
  - rvm: ruby-head
@@ -24,3 +25,12 @@ deploy:
24
25
  on:
25
26
  tags: true
26
27
  repo: matthutchinson/lifx_dash
28
+ env:
29
+ global:
30
+ - CC_TEST_REPORTER_ID=71107cb58f585bf7506e53f33238f4bd4e9aa87215ed916a5b466ecd9b493209
31
+ before_script:
32
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
33
+ - chmod +x ./cc-test-reporter
34
+ - ./cc-test-reporter before-build
35
+ after_script:
36
+ - ./cc-test-reporter after-build
data/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  [![Gem Version](https://img.shields.io/gem/v/lifx_dash.svg?style=flat)](http://rubygems.org/gems/lifx_dash)
4
4
  [![Travis Build Status](https://travis-ci.org/matthutchinson/lifx_dash.svg?branch=master)](https://travis-ci.org/matthutchinson/lifx_dash)
5
- [![Coverage Status](https://coveralls.io/repos/github/matthutchinson/lifx_dash/badge.svg?branch=master)](https://coveralls.io/github/matthutchinson/lifx_dash?branch=master)
6
- [![Code Climate](https://codeclimate.com/github/matthutchinson/lifx_dash/badges/gpa.svg)](https://codeclimate.com/github/matthutchinson/lifx_dash)
7
- [![Gem Dependency Status](https://gemnasium.com/matthutchinson/lifx_dash.svg)](https://gemnasium.com/matthutchinson/lifx_dash)
5
+ [![Maintainability](https://img.shields.io/codeclimate/maintainability/matthutchinson/lifx_dash.svg)](https://codeclimate.com/github/matthutchinson/lifx_dash/maintainability)
6
+ [![Test Coverage](https://img.shields.io/codeclimate/c/matthutchinson/lifx_dash.svg)](https://codeclimate.com/github/matthutchinson/lifx_dash/test_coverage)
7
+ [![Gem Dependency Status](https://gemnasium.com/badges/github.com/matthutchinson/lifx_dash.svg)](https://gemnasium.com/github.com/matthutchinson/lifx_dash)
8
8
 
9
9
  ![Amazon LIFX Dash Button](http://matthutchinson.github.io/lifx_dash/images/lifx_dash.png)
10
10
 
@@ -153,9 +153,9 @@ take a moment and check it hasn't already been raised (and possibly closed).
153
153
  This gem uses the [PacketFu](https://rubygems.org/gems/packetfu) gem (and
154
154
  [libpcap](https://sourceforge.net/projects/libpcap/) under the hood) to monitor
155
155
  data packets on your network. This packet stream filters for
156
- [DHCP](https://wiki.wireshark.org/DHCP) packets (sent from 0.0.0.0). Older dash
157
- buttons sent both DHCP and [ARP](https://wiki.wireshark.org/ARP) packets but
158
- detecting ARP reliably was problematic.
156
+ [DHCP](https://wiki.wireshark.org/DHCP) packets (sent from 0.0.0.0). See
157
+ [below](https://github.com/matthutchinson/lifx_dash#packet-detection)
158
+ for more details on packet detection.
159
159
 
160
160
  When a valid packet is detected with a known source MAC address, the LIFX HTTP
161
161
  API [toggle-power](https://api.developer.lifx.com/docs/toggle-power) endpoint is
@@ -166,6 +166,26 @@ the commands and options.
166
166
  [MiniTest](https://rubygems.org/gems/minitest/versions/5.7.0) and
167
167
  [Aruba](https://rubygems.org/gems/aruba) are used for testing.
168
168
 
169
+ ## Packet detection
170
+
171
+ Using [WireShark](https://www.wireshark.org) to monitor the network it appears
172
+ that;
173
+
174
+ * older buttons send an ARP packet followed by one or more DHCP packets
175
+ * newer buttons send one or more DHCP packets
176
+
177
+ To detect packets on both devices it should only be necessary to look for
178
+ DHCP packets; this can be done with the following filter:
179
+
180
+ ```
181
+ udp and src port 68 and dst port 67 and udp[247:4] == 0x63350103 and src host 0.0.0.0
182
+ ```
183
+
184
+ However since DHCP packets appear to arrive in bursts of 2, the
185
+ [Capturer](https://github.com/matthutchinson/lifx_dash/blob/master/lib/lifx_dash/capturer.rb)
186
+ only acts on packets that have an even IP
187
+ [ID](https://tools.ietf.org/html/rfc6864) field.
188
+
169
189
  ## Contributing
170
190
 
171
191
  Bug [reports](https://github.com/matthutchinson/lifx_dash/issues) and [pull
@@ -221,8 +241,8 @@ License](http://opensource.org/licenses/MIT).
221
241
  ## Links
222
242
 
223
243
  * [Travis CI](http://travis-ci.org/matthutchinson/lifx_dash)
224
- * [Test Coverage](https://coveralls.io/r/matthutchinson/lifx_dash?branch=master)
225
- * [Code Climate](https://codeclimate.com/github/matthutchinson/lifx_dash)
244
+ * [Maintainability](https://codeclimate.com/github/matthutchinson/lifx_dash/maintainability)
245
+ * [Test Coverage](https://codeclimate.com/github/matthutchinson/lifx_dash/test_coverage)
226
246
  * [RDoc](http://rdoc.info/projects/matthutchinson/lifx_dash)
227
247
  * [Wiki](http://wiki.github.com/matthutchinson/lifx_dash/)
228
248
  * [Issues](http://github.com/matthutchinson/lifx_dash/issues)
@@ -1,3 +1,3 @@
1
1
  module LifxDash
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -42,14 +42,14 @@ Gem::Specification.new do |spec|
42
42
  spec.rdoc_options << '--title' << 'lifx_dash' << '--main' << 'README.md' << '-ri'
43
43
 
44
44
  # non-gem dependecies
45
- spec.required_ruby_version = ">= 2.0.0"
45
+ spec.required_ruby_version = ">= 2.1"
46
46
  spec.requirements << 'libpcap'
47
47
  spec.requirements << 'an Amazon Dash button'
48
48
  spec.requirements << 'one or more LIFX bulbs'
49
49
  spec.requirements << 'root access'
50
50
 
51
51
  # external gems
52
- spec.add_runtime_dependency "gli", "2.16.0"
52
+ spec.add_runtime_dependency "gli", "2.17.1"
53
53
  spec.add_runtime_dependency "packetfu", "1.1.13"
54
54
 
55
55
  # dev gems
@@ -63,5 +63,4 @@ Gem::Specification.new do |spec|
63
63
  spec.add_development_dependency "webmock"
64
64
  spec.add_development_dependency "aruba"
65
65
  spec.add_development_dependency "simplecov"
66
- spec.add_development_dependency "coveralls"
67
66
  end
@@ -1,10 +1,5 @@
1
1
  if ENV['COVERAGE']
2
- if ENV['TRAVIS']
3
- require 'coveralls'
4
- Coveralls.wear!
5
- else
6
- require 'simplecov'
7
- end
2
+ require 'simplecov'
8
3
  end
9
4
 
10
5
  require 'lifx_dash'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lifx_dash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Hutchinson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-02 00:00:00.000000000 Z
11
+ date: 2018-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.16.0
19
+ version: 2.17.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.16.0
26
+ version: 2.17.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: packetfu
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -150,20 +150,6 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
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'
167
153
  description: |2
168
154
  A command line tool to listen for Amazon Dash button presses and toggle LIFX
169
155
  lights ON and OFF (via the LIFX HTTP API). With options to configure: the Dash
@@ -228,7 +214,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
228
214
  requirements:
229
215
  - - ">="
230
216
  - !ruby/object:Gem::Version
231
- version: 2.0.0
217
+ version: '2.1'
232
218
  required_rubygems_version: !ruby/object:Gem::Requirement
233
219
  requirements:
234
220
  - - ">="
@@ -240,7 +226,7 @@ requirements:
240
226
  - one or more LIFX bulbs
241
227
  - root access
242
228
  rubyforge_project:
243
- rubygems_version: 2.6.11
229
+ rubygems_version: 2.7.3
244
230
  signing_key:
245
231
  specification_version: 4
246
232
  summary: Toggle LIFX lights with an Amazon Dash button