lifx_dash 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.travis.yml +3 -3
- data/README.md +15 -23
- data/bin/lifx_dash +3 -6
- data/lib/lifx_dash/capturer.rb +16 -9
- data/lib/lifx_dash/snoop.rb +0 -2
- data/lib/lifx_dash/version.rb +1 -1
- data/man/lifx_dash.1 +6 -6
- data/man/lifx_dash.1.html +10 -10
- data/man/lifx_dash.1.ronn +9 -9
- metadata +36 -35
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
OWVhMDk4N2JhNGIwYmNmODg0YTlhYzU2NjczNWYzZmYzOWMxMzVlMg==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cfe674982a9903633e0576f45dfd2f9e598cd9cb
|
4
|
+
data.tar.gz: 533b6ad256a945e13505484568345faa7d60d0d2
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MmY5MTFkNzBjN2Y3YjE4NzcyODEyMjdiMjUxY2I5ZDcxMzdmNjljNDA2Mjk4
|
11
|
-
MzY5ZDlkNTFkZDRjZDMxOGVhYTgyMDJkMDJlZDE3MGNhYjdlYjY=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZmZlZmQ5MDAwYjgwN2Q1MGU0MWFmODY5YTdiNTIxYmE1ODFjNTlhODlmMzM1
|
14
|
-
Y2Y2OGFiZWQ3MDEzNmE2YzBlYjQ4ZTE2ZDFlZGJiM2E1ZWM4YWM5ZDBhMjIw
|
15
|
-
MDdmMDhkYzU0ZDZjNTcxNDk3MjAyNzljZTBjZWYxYzc4ZmI2ZDc=
|
6
|
+
metadata.gz: 9c443ecea091c19c9f41a48cd3c7ac29f5f371982a8bdd18cbca99f8be00201822f7b0c5164911b9a1998d848f3474894c08c8828339472bfcf5234b8ed9ce6b
|
7
|
+
data.tar.gz: 388b2c610cbc1d6f1b27f3fcb1a98506482b18933fdf79ffd9760980a64298aa1a84bd6b21453f7b676fbd6fd5ab856afbbbb5d800e4f8ba6e1e91bfa88d4302
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -49,8 +49,9 @@ The `lifx_dash` command will now be available in your PATH.
|
|
49
49
|
|
50
50
|
### Dash Button Setup
|
51
51
|
|
52
|
-
Follow Amazon's Dash button setup steps, but **stop** before choosing
|
53
|
-
|
52
|
+
Follow Amazon's Dash button setup steps, but **stop** before choosing a product
|
53
|
+
to purchase. Pressing the button should pulse white while connecting to wi-fi,
|
54
|
+
then flash orange. If necessary, you can [factory
|
54
55
|
reset](https://www.amazon.com/gp/help/customer/display.html?nodeId=201746400)
|
55
56
|
your button and start the setup from scratch.
|
56
57
|
|
@@ -58,21 +59,12 @@ Next use the `snoop` command to determine the button's MAC address:
|
|
58
59
|
|
59
60
|
$ sudo lifx_dash snoop -i en0
|
60
61
|
|
61
|
-
This will listen on network interface 'en0' for
|
62
|
-
|
63
|
-
|
62
|
+
This will listen on network interface 'en0' for Dash button packets. Take a note
|
63
|
+
of the MAC address that's logged when you press. To list network interfaces on
|
64
|
+
your machine use:
|
64
65
|
|
65
|
-
$ ifconfig
|
66
|
-
# or
|
67
66
|
$ ifconfig -l
|
68
67
|
|
69
|
-
#### Snooping Tips
|
70
|
-
|
71
|
-
Wait for the network to quiet down, before pressing the button, since other
|
72
|
-
devices may respond with ARP packets of their own when you press. Take care to
|
73
|
-
choose the MAC address from the ARP packet that occurs only once from a single
|
74
|
-
MAC address.
|
75
|
-
|
76
68
|
### LIFX Bulb Setup
|
77
69
|
|
78
70
|
Create a [personal token](https://cloud.lifx.com/settings) for the LIFX HTTP
|
@@ -160,12 +152,12 @@ take a moment and check it hasn't already been raised (and possibly closed).
|
|
160
152
|
|
161
153
|
This gem uses the [PacketFu](https://rubygems.org/gems/packetfu) gem (and
|
162
154
|
[libpcap](https://sourceforge.net/projects/libpcap/) under the hood) to monitor
|
163
|
-
data packets on your network. This packet stream
|
164
|
-
[ARP](https://en.wikipedia.org/wiki/Address_Resolution_Protocol) packets
|
165
|
-
|
166
|
-
|
155
|
+
data packets on your network. This packet stream filters
|
156
|
+
[ARP](https://en.wikipedia.org/wiki/Address_Resolution_Protocol) packets and
|
157
|
+
DHCP packets (sent from 0.0.0.0). Older buttons use the ARP method, while newer
|
158
|
+
buttons issue DHCP packets.
|
167
159
|
|
168
|
-
When
|
160
|
+
When a valid packet is detected with a known source MAC address, the LIFX HTTP
|
169
161
|
API [toggle-power](https://api.developer.lifx.com/docs/toggle-power) endpoint is
|
170
162
|
requested, with a selector and authorization header.
|
171
163
|
|
@@ -186,11 +178,11 @@ CI](https://travis-ci.org/matthutchinson/lifx_dash). Read the [contributing
|
|
186
178
|
guidelines](https://github.com/matthutchinson/lifx_dash/blob/master/CONTRIBUTING.md)
|
187
179
|
for more details.
|
188
180
|
|
189
|
-
This project is intended to be a safe, welcoming space for
|
190
|
-
|
181
|
+
This project is intended to be a safe, welcoming space for collaboration, and
|
182
|
+
contributors are expected to adhere to the [Contributor
|
191
183
|
Covenant](http://contributor-covenant.org) code of conduct. See
|
192
|
-
[here](https://github.com/
|
193
|
-
more details.
|
184
|
+
[here](https://github.com/matthutchinson/lifx_dash/blob/master/CODE_OF_CONDUCT.md)
|
185
|
+
for more details.
|
194
186
|
|
195
187
|
## Development
|
196
188
|
|
data/bin/lifx_dash
CHANGED
@@ -35,11 +35,8 @@ end
|
|
35
35
|
|
36
36
|
|
37
37
|
desc "Listen for Dash button presses on the network and show packet information"
|
38
|
-
long_desc "Monitor the sepcified network interface for
|
39
|
-
|
40
|
-
down, before pressing the button, since other devices may respond with ARP
|
41
|
-
packets of their own when you press. Take care to choose the MAC address from
|
42
|
-
the ARP packet that occurs only once from a single MAC address."
|
38
|
+
long_desc "Monitor the sepcified network interface for valid Dash button packets
|
39
|
+
and log the device MAC address to stdout."
|
43
40
|
command :snoop do |c|
|
44
41
|
c.desc "Network Interface"
|
45
42
|
c.default_value CONFIG["iface"] || "en0"
|
@@ -52,7 +49,7 @@ end
|
|
52
49
|
|
53
50
|
desc "Listen for a Dash button press, and the toggle selected lights"
|
54
51
|
long_desc "Monitor the sepcified network interface, filtered by a Dash button
|
55
|
-
MAC address. If a valid
|
52
|
+
MAC address. If a valid packet is detected, the LIFX lights (identified by
|
56
53
|
the selector) will be toggled using the LIFX HTTP API (v1). You can optionally
|
57
54
|
pass a LIFX bulb selector (the bulb ID), or choose to daemonize the `monitor`
|
58
55
|
process.
|
data/lib/lifx_dash/capturer.rb
CHANGED
@@ -3,6 +3,16 @@ require "packetfu"
|
|
3
3
|
module LifxDash
|
4
4
|
class Capturer
|
5
5
|
|
6
|
+
# Berkeley Packet filter for Amazon Dash buttons
|
7
|
+
#
|
8
|
+
# - older dash buttons issue an ARP packet from 0.0.0.0
|
9
|
+
# - newer buttons broadcast a DHCP request from 0.0.0.0
|
10
|
+
# - use the following bfp in WireShark to snoop for raw packets
|
11
|
+
# - (arp or (udp.srcport == 68 and udp.dstport == 67)) and ip.src == 0.0.0.0
|
12
|
+
# - for more details see https://github.com/ide/dash-button/issues/36
|
13
|
+
#
|
14
|
+
PACKET_FILTER = "(arp or (udp and src port 68 and dst port 67)) and src host 0.0.0.0"
|
15
|
+
|
6
16
|
attr_reader :iface
|
7
17
|
|
8
18
|
def initialize(network_iface_id)
|
@@ -12,25 +22,22 @@ module LifxDash
|
|
12
22
|
def listen(&block)
|
13
23
|
# examine packets on the stream
|
14
24
|
capturer.stream.each do |packet|
|
15
|
-
pkt = PacketFu::
|
16
|
-
#
|
17
|
-
|
18
|
-
|
19
|
-
if pkt.arp_opcode == 1
|
25
|
+
pkt = PacketFu::IPPacket.parse(packet)
|
26
|
+
# only consider the first packet sent
|
27
|
+
if pkt.ip_id == 1
|
28
|
+
mac = PacketFu::EthHeader.str2mac(pkt.eth_src)
|
20
29
|
block.call(pkt, mac) if block
|
21
30
|
end
|
22
31
|
end
|
23
32
|
end
|
24
33
|
|
25
|
-
|
26
34
|
private
|
27
|
-
|
28
35
|
def capturer
|
29
|
-
#
|
36
|
+
# capture (and filter) packets on network interface
|
30
37
|
@capturer ||= PacketFu::Capture.new(
|
31
38
|
iface: @iface,
|
32
39
|
start: true,
|
33
|
-
filter:
|
40
|
+
filter: PACKET_FILTER
|
34
41
|
)
|
35
42
|
end
|
36
43
|
end
|
data/lib/lifx_dash/snoop.rb
CHANGED
@@ -9,8 +9,6 @@ module LifxDash
|
|
9
9
|
|
10
10
|
def run
|
11
11
|
puts "Snooping for dash button packets on #{iface} ... press [CTRL-c] to stop\n\n"
|
12
|
-
puts " * wait for the network to quiet down, before pressing the button"
|
13
|
-
puts " * you might get more than 1 ARP packet when pressing, use the MAC address that occurs once\n\n"
|
14
12
|
|
15
13
|
LifxDash::Capturer.new(iface).listen do |pkt, mac|
|
16
14
|
LOGGER.info "possible Dash button press from MAC address: #{mac} -- pkt summary: #{pkt.peek}"
|
data/lib/lifx_dash/version.rb
CHANGED
data/man/lifx_dash.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "LIFX_DASH" "1" "June
|
4
|
+
.TH "LIFX_DASH" "1" "June 2017" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBlifx_dash\fR \- Toggle LIFX lights with an Amazon Dash button
|
@@ -31,10 +31,13 @@ A \fBconfig\fR command also exists, allowing you to set default options for \fBm
|
|
31
31
|
\fBlifx_dash\fR requires at least one LIFX bulb, and any Amazon Dash button\. You will also need a wifi network and root access to sniff packets on your network adaptor\.
|
32
32
|
.
|
33
33
|
.P
|
34
|
-
Follow Amazon\'s Dash button setup steps, but \fBstop\fR before choosing
|
34
|
+
Follow Amazon\'s Dash button setup steps, but \fBstop\fR before choosing a product to purchase\. Pressing the button should pulse white while connecting to wi\-fi, then flash orange\. If necessary, you can factory reset \fIhttps://www\.amazon\.com/gp/help/customer/display\.html?nodeId=201746400\fR your button and start the setup from scratch\.
|
35
|
+
.
|
36
|
+
.P
|
37
|
+
You will also need a free LIFX API token from here: \fIhttps://cloud\.lifx\.com/settings\fR
|
35
38
|
.
|
36
39
|
.SH "OPTIONS"
|
37
|
-
The snoop command has one optional flag
|
40
|
+
The snoop command has one optional flag \- the network interface to listen on\.
|
38
41
|
.
|
39
42
|
.IP "\(bu" 4
|
40
43
|
\fB\-i\fR, \fB\-\-iface=arg\fR: Network Interface (default: en0)
|
@@ -42,9 +45,6 @@ The snoop command has one optional flag, the network interface to listen on\.
|
|
42
45
|
.IP "" 0
|
43
46
|
.
|
44
47
|
.P
|
45
|
-
Wait for the network to quiet down, before pressing the button, since other devices may respond with ARP packets of their own when you press\. Take care to choose the MAC address from the ARP packet that occurs only once from a single MAC address\.
|
46
|
-
.
|
47
|
-
.P
|
48
48
|
The \fBmonitor\fR command accepts the following flags, both a mac address and api token are required\.
|
49
49
|
.
|
50
50
|
.IP "\(bu" 4
|
data/man/lifx_dash.1.html
CHANGED
@@ -106,24 +106,24 @@ selector, or choose to daemonize the <code>monitor</code> process.</p>
|
|
106
106
|
will also need a wifi network and root access to sniff packets on your network
|
107
107
|
adaptor.</p>
|
108
108
|
|
109
|
-
<p>Follow Amazon's Dash button setup steps, but <strong>stop</strong> before choosing
|
110
|
-
|
111
|
-
|
109
|
+
<p>Follow Amazon's Dash button setup steps, but <strong>stop</strong> before choosing a product
|
110
|
+
to purchase. Pressing the button should pulse white while connecting to wi-fi,
|
111
|
+
then flash orange. If necessary, you can <a href="https://www.amazon.com/gp/help/customer/display.html?nodeId=201746400">factory
|
112
|
+
reset</a>
|
113
|
+
your button and start the setup from scratch.</p>
|
114
|
+
|
115
|
+
<p>You will also need a free LIFX API token from here:
|
116
|
+
<a href="https://cloud.lifx.com/settings" data-bare-link="true">https://cloud.lifx.com/settings</a></p>
|
112
117
|
|
113
118
|
<h2 id="OPTIONS">OPTIONS</h2>
|
114
119
|
|
115
|
-
<p>The snoop command has one optional flag
|
120
|
+
<p>The snoop command has one optional flag - the network interface to listen on.</p>
|
116
121
|
|
117
122
|
<ul>
|
118
123
|
<li><code>-i</code>, <code>--iface=arg</code>: Network Interface (default: en0)</li>
|
119
124
|
</ul>
|
120
125
|
|
121
126
|
|
122
|
-
<p>Wait for the network to quiet down, before pressing the button, since other
|
123
|
-
devices may respond with ARP packets of their own when you press. Take care to
|
124
|
-
choose the MAC address from the ARP packet that occurs only once from a single
|
125
|
-
MAC address.</p>
|
126
|
-
|
127
127
|
<p>The <code>monitor</code> command accepts the following flags, both a mac address and api
|
128
128
|
token are required.</p>
|
129
129
|
|
@@ -208,7 +208,7 @@ by any arguments passed on the command line.</p>
|
|
208
208
|
|
209
209
|
<ol class='man-decor man-foot man foot'>
|
210
210
|
<li class='tl'></li>
|
211
|
-
<li class='tc'>June
|
211
|
+
<li class='tc'>June 2017</li>
|
212
212
|
<li class='tr'>lifx_dash(1)</li>
|
213
213
|
</ol>
|
214
214
|
|
data/man/lifx_dash.1.ronn
CHANGED
@@ -29,21 +29,21 @@ A `config` command also exists, allowing you to set default options for
|
|
29
29
|
will also need a wifi network and root access to sniff packets on your network
|
30
30
|
adaptor.
|
31
31
|
|
32
|
-
Follow Amazon's Dash button setup steps, but **stop** before choosing
|
33
|
-
|
34
|
-
|
32
|
+
Follow Amazon's Dash button setup steps, but **stop** before choosing a product
|
33
|
+
to purchase. Pressing the button should pulse white while connecting to wi-fi,
|
34
|
+
then flash orange. If necessary, you can [factory
|
35
|
+
reset](https://www.amazon.com/gp/help/customer/display.html?nodeId=201746400)
|
36
|
+
your button and start the setup from scratch.
|
37
|
+
|
38
|
+
You will also need a free LIFX API token from here:
|
39
|
+
[https://cloud.lifx.com/settings](https://cloud.lifx.com/settings)
|
35
40
|
|
36
41
|
## OPTIONS
|
37
42
|
|
38
|
-
The snoop command has one optional flag
|
43
|
+
The snoop command has one optional flag - the network interface to listen on.
|
39
44
|
|
40
45
|
* `-i`, `--iface=arg`: Network Interface (default: en0)
|
41
46
|
|
42
|
-
Wait for the network to quiet down, before pressing the button, since other
|
43
|
-
devices may respond with ARP packets of their own when you press. Take care to
|
44
|
-
choose the MAC address from the ARP packet that occurs only once from a single
|
45
|
-
MAC address.
|
46
|
-
|
47
47
|
The `monitor` command accepts the following flags, both a mac address and api
|
48
48
|
token are required.
|
49
49
|
|
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.
|
4
|
+
version: 0.2.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:
|
11
|
+
date: 2017-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -42,133 +42,134 @@ dependencies:
|
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: ronn
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rdoc
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: minitest
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: webmock
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: aruba
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: simplecov
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- -
|
143
|
+
- - ">="
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- -
|
150
|
+
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: coveralls
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - ">="
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
|
-
description:
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
167
|
+
description: |2
|
168
|
+
A command line tool to listen for Amazon Dash button presses and toggle LIFX
|
169
|
+
lights ON and OFF (via the LIFX HTTP API). With options to configure: the Dash
|
170
|
+
MAC address, network interface and LIFX bulb selector. Inspired by Ted
|
171
|
+
Benson's hack (http://tinyurl.com/zba3da2). Root access is required for
|
172
|
+
network packet sniffing.
|
172
173
|
email:
|
173
174
|
- matt@hiddenloop.com
|
174
175
|
executables:
|
@@ -178,10 +179,10 @@ extra_rdoc_files:
|
|
178
179
|
- README.md
|
179
180
|
- LICENSE.txt
|
180
181
|
files:
|
181
|
-
- .coveralls.yml
|
182
|
-
- .gitignore
|
183
|
-
- .simplecov
|
184
|
-
- .travis.yml
|
182
|
+
- ".coveralls.yml"
|
183
|
+
- ".gitignore"
|
184
|
+
- ".simplecov"
|
185
|
+
- ".travis.yml"
|
185
186
|
- CHANGELOG.md
|
186
187
|
- CODE_OF_CONDUCT.md
|
187
188
|
- CONTRIBUTING.md
|
@@ -211,21 +212,21 @@ metadata:
|
|
211
212
|
allowed_push_host: https://rubygems.org
|
212
213
|
post_install_message:
|
213
214
|
rdoc_options:
|
214
|
-
- --title
|
215
|
+
- "--title"
|
215
216
|
- lifx_dash
|
216
|
-
- --main
|
217
|
+
- "--main"
|
217
218
|
- README.md
|
218
|
-
- -ri
|
219
|
+
- "-ri"
|
219
220
|
require_paths:
|
220
221
|
- lib
|
221
222
|
required_ruby_version: !ruby/object:Gem::Requirement
|
222
223
|
requirements:
|
223
|
-
- -
|
224
|
+
- - ">="
|
224
225
|
- !ruby/object:Gem::Version
|
225
226
|
version: 2.0.0
|
226
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
227
228
|
requirements:
|
228
|
-
- -
|
229
|
+
- - ">="
|
229
230
|
- !ruby/object:Gem::Version
|
230
231
|
version: '0'
|
231
232
|
requirements:
|
@@ -234,7 +235,7 @@ requirements:
|
|
234
235
|
- one or more LIFX bulbs
|
235
236
|
- root access
|
236
237
|
rubyforge_project:
|
237
|
-
rubygems_version: 2.
|
238
|
+
rubygems_version: 2.6.11
|
238
239
|
signing_key:
|
239
240
|
specification_version: 4
|
240
241
|
summary: Toggle LIFX lights with an Amazon Dash button
|