Giter Site home page Giter Site logo

hklifx's Introduction

hklifx

This is a HomeKit bridge for LIFX light bulbs using HomeControl and lifx golifx.

LIFX light bulbs are automatically discovered and published as HomeKit accessories on your local network. After pairing the light bulbs with HomeKit using any iOS HomeKit app (e.g. Home), you can

  • use Siri to control your lights using voice command โ€“ Hey Siri turn on the bedroom lights
  • use HomeKit triggers to automate your lights โ€“ turn on the lights every day at 7:00 AM
  • remotely access your lights using HomeKit Remote Access (HomeKit uses strong end-to-end encryption)

Getting Started

  1. Install Go

  2. Setup Go workspace

  3. Install

     cd $GOPATH/src
     
     # Clone project
     git clone https://github.com/brutella/hklifx && cd hklifx
     
     # Fetch hklifxd go dependencies
     go get
    
  4. Run

     go run hklifxd.go -pin 00102003 -v
    
  5. Pairing: The official LIFX app for iOS or Android is required to initially setup the light bulbs. After that you can use the hklifxd daemon to control your lights via HomeKit by using Home or any other HomeKit-compatible app.

Command Line Arguments

Required

  • -pin [8-digits] must be entered on iOS to pair with the light bulb(s)

Optional

  • -transition-duration [seconds] sets the transition speed
  • -v for verbose log output

Contributors

Contact

Matthias Hochgatterer

Github: https://github.com/brutella

Twitter: https://twitter.com/brutella

License

hklifx is available under a non-commercial license. See the LICENSE file for more info.

hklifx's People

Contributors

blubber avatar broglea avatar brutella avatar chendo avatar pmaene avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hklifx's Issues

issues with "go get"

vendor/github.com/pdf/golifx/protocol/v2/packet/packet.go:15:2: cannot find package "github.com/lunixbochs/struc" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/lunixbochs/struc (vendor tree)
	/usr/local/go/src/vendor/github.com/lunixbochs/struc
	/usr/local/go/src/github.com/lunixbochs/struc (from $GOROOT)
	/Users/that70schris/go/src/github.com/lunixbochs/struc (from $GOPATH)
vendor/github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:10:2: cannot find package "github.com/miekg/dns" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/brutella/hc/vendor/github.com/miekg/dns (vendor tree)
	/usr/local/go/src/hklifx/vendor/github.com/miekg/dns
	/usr/local/go/src/vendor/github.com/miekg/dns
	/usr/local/go/src/github.com/miekg/dns (from $GOROOT)
	/Users/that70schris/go/src/github.com/miekg/dns (from $GOPATH)
vendor/github.com/pdf/golifx/common/subscription.go:7:2: cannot find package "github.com/satori/go.uuid" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/satori/go.uuid (vendor tree)
	/usr/local/go/src/vendor/github.com/satori/go.uuid
	/usr/local/go/src/github.com/satori/go.uuid (from $GOROOT)
	/Users/that70schris/go/src/github.com/satori/go.uuid (from $GOPATH)
vendor/github.com/brutella/hc/crypto/chacha20poly1305/chacha20_poly1305.go:6:2: cannot find package "golang.org/x/crypto/chacha20poly1305" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/chacha20poly1305 (vendor tree)
	/usr/local/go/src/hklifx/vendor/golang.org/x/crypto/chacha20poly1305
	/usr/local/go/src/vendor/golang.org/x/crypto/chacha20poly1305
	/usr/local/go/src/golang.org/x/crypto/chacha20poly1305 (from $GOROOT)
	/Users/that70schris/go/src/golang.org/x/crypto/chacha20poly1305 (from $GOPATH)
vendor/github.com/brutella/hc/crypto/curve25519/curve25519.go:5:2: cannot find package "golang.org/x/crypto/curve25519" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/curve25519 (vendor tree)
	/usr/local/go/src/hklifx/vendor/golang.org/x/crypto/curve25519
	/usr/local/go/src/vendor/golang.org/x/crypto/curve25519
	/usr/local/go/src/golang.org/x/crypto/curve25519 (from $GOROOT)
	/Users/that70schris/go/src/golang.org/x/crypto/curve25519 (from $GOPATH)
vendor/github.com/brutella/hc/crypto/hkdf/hkdf.go:5:2: cannot find package "golang.org/x/crypto/hkdf" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/hkdf (vendor tree)
	/usr/local/go/src/hklifx/vendor/golang.org/x/crypto/hkdf
	/usr/local/go/src/vendor/golang.org/x/crypto/hkdf
	/usr/local/go/src/golang.org/x/crypto/hkdf (from $GOROOT)
	/Users/that70schris/go/src/golang.org/x/crypto/hkdf (from $GOPATH)
vendor/github.com/brutella/hc/crypto/chacha20poly1305/chacha20_poly1305.go:7:2: cannot find package "golang.org/x/crypto/poly1305" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/poly1305 (vendor tree)
	/usr/local/go/src/hklifx/vendor/golang.org/x/crypto/poly1305
	/usr/local/go/src/vendor/golang.org/x/crypto/poly1305
	/usr/local/go/src/golang.org/x/crypto/poly1305 (from $GOROOT)
	/Users/that70schris/go/src/golang.org/x/crypto/poly1305 (from $GOPATH)
vendor/github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:11:2: cannot find package "golang.org/x/net/ipv4" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/net/ipv4 (vendor tree)
	/usr/local/go/src/hklifx/vendor/golang.org/x/net/ipv4
	/usr/local/go/src/vendor/golang.org/x/net/ipv4
	/usr/local/go/src/golang.org/x/net/ipv4 (from $GOROOT)
	/Users/that70schris/go/src/golang.org/x/net/ipv4 (from $GOPATH)
vendor/github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:12:2: cannot find package "golang.org/x/net/ipv6" in any of:
	/usr/local/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/net/ipv6 (vendor tree)
	/usr/local/go/src/hklifx/vendor/golang.org/x/net/ipv6
	/usr/local/go/src/vendor/golang.org/x/net/ipv6
	/usr/local/go/src/golang.org/x/net/ipv6 (from $GOROOT)
	/Users/that70schris/go/src/golang.org/x/net/ipv6 (from $GOPATH)

Massive memory leak

After running this process for just about 12 hours, the memory footprint is HUGE. I have 4 light bulbs and my memory consumption is at 6 of my 8 GB of ram.

Doesn't work with my lifx.

All info and screenshots done at same time. No troubles in network. No Packet Drops. LIFX app works well.
Accessory after ~20 sec just gone but ping to light bulb is stable.

64 bytes from 10.0.1.120: icmp_seq=1 ttl=128 time=5.981 ms
64 bytes from 10.0.1.120: icmp_seq=2 ttl=128 time=5.803 ms
64 bytes from 10.0.1.120: icmp_seq=3 ttl=128 time=7.072 ms
64 bytes from 10.0.1.120: icmp_seq=4 ttl=128 time=6.565 ms
64 bytes from 10.0.1.120: icmp_seq=5 ttl=128 time=5.946 ms
64 bytes from 10.0.1.120: icmp_seq=6 ttl=128 time=6.022 ms
64 bytes from 10.0.1.120: icmp_seq=7 ttl=128 time=7.011 ms
64 bytes from 10.0.1.120: icmp_seq=8 ttl=128 time=7.153 ms
64 bytes from 10.0.1.120: icmp_seq=9 ttl=128 time=7.387 ms
64 bytes from 10.0.1.120: icmp_seq=10 ttl=128 time=8.937 ms
64 bytes from 10.0.1.120: icmp_seq=11 ttl=128 time=5.794 ms
64 bytes from 10.0.1.120: icmp_seq=12 ttl=128 time=6.440 ms
64 bytes from 10.0.1.120: icmp_seq=13 ttl=128 time=6.133 ms
64 bytes from 10.0.1.120: icmp_seq=14 ttl=128 time=6.921 ms
64 bytes from 10.0.1.120: icmp_seq=15 ttl=128 time=3.575 ms
64 bytes from 10.0.1.120: icmp_seq=16 ttl=128 time=6.579 ms
64 bytes from 10.0.1.120: icmp_seq=17 ttl=128 time=4.665 ms
64 bytes from 10.0.1.120: icmp_seq=18 ttl=128 time=7.084 ms

2015-11-01 2 04 27

img_0161

When trying to run go run hklifxd.go -pin 00102003 -v i get this error

Not sure if this is a problem or i'm just doing it wrong, but this is what i get when i run
"go run hklifxd.go -pin 00102003 -v" i get all of this:

vendor/github.com/brutella/hc/crypto/chacha20poly1305/chacha20_poly1305.go:6:2: cannot find package "github.com/aead/chacha20" in any of:
/Users/(my name)/go/src/vendor/github.com/brutella/hc/vendor/github.com/aead/chacha20 (vendor tree)
/Users/(my name)/go/src/vendor/github.com/aead/chacha20
/usr/local/go/src/github.com/aead/chacha20 (from $GOROOT)
/Users/(my name)/go/src/github.com/aead/chacha20 (from $GOPATH)

vendor/github.com/pdf/golifx/protocol/v2/packet/packet.go:15:2: cannot find package "github.com/lunixbochs/struc" in any of:
/Users/(my name)/go/src/vendor/github.com/lunixbochs/struc (vendor tree)
/usr/local/go/src/github.com/lunixbochs/struc (from $GOROOT)
/Users/(my name)/go/src/github.com/lunixbochs/struc (from $GOPATH)

github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:10:2: cannot find package "github.com/miekg/dns" in any of:
/Users/(my name)/go/src/github.com/brutella/hc/vendor/github.com/miekg/dns (vendor tree)
/Users/(my name)/go/src/vendor/github.com/miekg/dns
/usr/local/go/src/github.com/miekg/dns (from $GOROOT)
/Users/(my name)/go/src/github.com/miekg/dns (from $GOPATH)

vendor/github.com/pdf/golifx/common/subscription.go:7:2: cannot find package "github.com/satori/go.uuid" in any of:
/Users/(my name)/go/src/vendor/github.com/satori/go.uuid (vendor tree)
/usr/local/go/src/github.com/satori/go.uuid (from $GOROOT)
/Users/(my name)/go/src/github.com/satori/go.uuid (from $GOPATH)

vendor/github.com/brutella/hc/crypto/curve25519/curve25519.go:5:2: cannot find package "golang.org/x/crypto/curve25519" in any of:
/Users/(my name)/go/src/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/curve25519 (vendor tree)
/Users/(my name)/go/src/vendor/golang.org/x/crypto/curve25519
/usr/local/go/src/golang.org/x/crypto/curve25519 (from $GOROOT)
/Users/(my name)/go/src/golang.org/x/crypto/curve25519 (from $GOPATH)

vendor/github.com/brutella/hc/crypto/hkdf/hkdf.go:5:2: cannot find package "golang.org/x/crypto/hkdf" in any of:
/Users/(my name)/go/src/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/hkdf (vendor tree)
/Users/(my name)/go/src/vendor/golang.org/x/crypto/hkdf
/usr/local/go/src/golang.org/x/crypto/hkdf (from $GOROOT)
/Users/(my name)/go/src/golang.org/x/crypto/hkdf (from $GOPATH)

github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:11:2: cannot find package "golang.org/x/net/ipv4" in any of:
/Users/(my name)/go/src/github.com/brutella/hc/vendor/golang.org/x/net/ipv4 (vendor tree)
/Users/(my name)/go/src/vendor/golang.org/x/net/ipv4
/usr/local/go/src/golang.org/x/net/ipv4 (from $GOROOT)
/Users/(my name)/go/src/golang.org/x/net/ipv4 (from $GOPATH)

github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:12:2: cannot find package "golang.org/x/net/ipv6" in any of:
/Users/(my name)/go/src/github.com/brutella/hc/vendor/golang.org/x/net/ipv6 (vendor tree)
/Users/(my name)/go/src/vendor/golang.org/x/net/ipv6
/usr/local/go/src/golang.org/x/net/ipv6 (from $GOROOT)
/Users/(my name)/go/src/golang.org/x/net/ipv6 (from $GOPATH)

What am i doing wrong?

increasing CPU and memory usage after running for several hours

After starting hklifx on my C.H.I.P. (ARMv7, Debian based Linux) i do see an increase of CPU and memory usage after running for several hours in the background. Regarding top and ps looks like hklifx is starting more and more threads that are not closed anymore. Even looks like the process then crashes at some point (see hklifx-log.txt).

How to Pair with iOS

Hi, your hklifx is simply awesome. I following exact untill the last part and stuck... could you help to enlighten me

Code below has to be run on OSX or ios?
go run hklifxd.go -pin 00102003 -v

the requirement --> -pin [8-digits] must be entered on iOS to pair with the light bulb(s). I couldnt access to my ios terminal as my iphone has not been jailbreak. Any workaround?

Thanks in advance.

cannot find package "github.com/brutella/hc"

I managed to get this setup up on my raspberry pi.

All was working well but later that day the lights became unreachable and terminal said

~/GO_WORKSPACE/src/hklifx $ go run hklifxd.go -pin 00102003 -v hklifxd.go:9:2: cannot find package "github.com/brutella/hc" in any of: /usr/local/go/src/github.com/brutella/hc (from $GOROOT) ($GOPATH not set)

I couldn't get it to start again so I deleted all the files from my computer and setup again and it worked.

That was until this morning when I cannot connect again and am getting the same message.

Can anyone help me? im a bit of a newb so the more info the better.

LIFX bulbs get detected and I see in "home" app but then I can't add in "Home" app

Trying to get my LIFX bulbs configured into the "Home" app I purchased from you, here's what happens:

C:\Program Files\Git>cd c:\work\src\hklifx

c:\work\src\hklifx>go run hklifxd.go -pin 00102003 -v
2015/11/06 14:31:27 [INFO] Discovered Location Home
2015/11/06 14:31:27 [INFO] Discovered Group Bedroom
2015/11/06 14:31:27 [INFO] Discovered Device LIFX #5
2015/11/06 14:31:27 [INFO] Creating New HKLight for LIFX #5
2015/11/06 14:31:27 [INFO] Discovered Device LIFX #4
2015/11/06 14:31:27 [INFO] Creating New HKLight for LIFX #4
2015/11/06 14:31:27 [INFO] Discovered Device LIFX #7
2015/11/06 14:31:27 [INFO] Creating New HKLight for LIFX #7
2015/11/06 14:31:27 [INFO] Discovered Device LIFX #2
2015/11/06 14:31:27 [INFO] Discovered Device LIFX #8
2015/11/06 14:31:27 [INFO] Discovered Device LIFX #3
2015/11/06 14:31:27 [INFO] Discovered Device LIFX #1
2015/11/06 14:31:27 [INFO] Creating New HKLight for LIFX #1
2015/11/06 14:31:27 [INFO] Creating New HKLight for LIFX #2
2015/11/06 14:31:27 [INFO] Creating New HKLight for LIFX #8
2015/11/06 14:31:27 [INFO] Creating New HKLight for LIFX #3
2015/11/06 14:31:27 [INFO] Accessory IP is 169.254.109.143
2015/11/06 14:31:27 [INFO] Accessory IP is 169.254.109.143
2015/11/06 14:31:27 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :535
3: bind: Only one usage of each socket address (protocol/network address/port) i
s normally permitted.
2015/11/06 14:31:27 [INFO] Accessory IP is 169.254.109.143
2015/11/06 14:31:27 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :535
3: bind: Only one usage of each socket address (protocol/network address/port) i
s normally permitted.
2015/11/06 14:31:27 [INFO] Accessory IP is 169.254.109.143
2015/11/06 14:31:27 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :535
3: bind: Only one usage of each socket address (protocol/network address/port) i
s normally permitted.
2015/11/06 14:31:27 [INFO] Accessory IP is 169.254.109.143
2015/11/06 14:31:27 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :535
3: bind: Only one usage of each socket address (protocol/network address/port) i
s normally permitted.
2015/11/06 14:31:27 [INFO] Accessory IP is 169.254.109.143
2015/11/06 14:31:27 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :535
3: bind: Only one usage of each socket address (protocol/network address/port) i
s normally permitted.
2015/11/06 14:31:27 [INFO] Accessory IP is 169.254.109.143
2015/11/06 14:31:27 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :535
3: bind: Only one usage of each socket address (protocol/network address/port) i
s normally permitted.
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/06 14:31:57 [INFO] Unknown Device Event: shared.EventBroadcastSent

Failed to initiliaze the client:

When trying to run:

go run hklifxd.go -pin 00102003 -v

I'm getting:

Failed to initiliaze the client: listen udp4 :56700: bind: address already in use
exit status 1

I have no clue what this means.

UUID API broken - satori/go.uuid

Nature of the Issue

I recieved the following error when attempting to get hklifx up and running

# hklifxd/vendor/github.com/pdf/golifx/common/vendor/github.com/pdf/golifx/common/subscription.go:69:23: multiple-value uuid.NewV4() in single-value context

Probable Cause

It appears to relate to Issue #66 in satori/go.uuid where an update to that project has caused things to break. Several other projects seem to have identified similar issues.

Quick and Dirty resolution

If you've found this post while troubleshooting the error and just want to get hklifx up and running - I managed to get it working by editing the subscription.go file and replacing

github.com/satori/go.uuid with github.com/rkuris/go.uuid

Working great until crashes out with 'exit status 2'

Hi all,

Love the project, but I'm having a few issues with it. Everything works great, but the script crashes out as shown below.

"goroutine 1229 [IO wait, 2 minutes]:
net.runtime_pollWait(0x7f724c0be0c0, 0x72, 0xc82000e1d0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc820407250, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc820407250, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).Read(0xc8204071f0, 0xc820152000, 0x1000, 0x1000, 0x0, 0x7f724c0a7050, 0xc82000e1d0)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(_conn).Read(0xc8203722d0, 0xc820152000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
bufio.(_Reader).fill(0xc8202cdb00)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(_Reader).Read(0xc8202cdb00, 0xc820505a20, 0x2, 0x8, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:207 +0x260
io.ReadAtLeast(0x7f724c0bd0d0, 0xc8202cdb00, 0xc820505a20, 0x2, 0x8, 0x2, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0x7f724c0bd0d0, 0xc8202cdb00, 0xc820505a20, 0x2, 0x8, 0xd, 0x0, 0x0)
/usr/local/go/src/io/io.go:316 +0x62
encoding/binary.Read(0x7f724c0bd0d0, 0xc8202cdb00, 0x7f724c0ac9f0, 0xbae8c8, 0x7ac600, 0xc820505a10, 0x0, 0x0)
/usr/local/go/src/encoding/binary/binary.go:148 +0x136
github.com/brutella/hc/crypto.(_secureSession).Decrypt(0xc8201609c0, 0x7f724c0bd0d0, 0xc8202cdb00, 0x0, 0x0, 0x0, 0x0)
/home/luke/go/src/github.com/brutella/hc/crypto/secure_session.go:98 +0x124
github.com/brutella/hc/netio.(_HAPConnection).DecryptedRead(0xc820528930, 0xc82014b000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/home/luke/go/src/github.com/brutella/hc/netio/connection.go:68 +0x16b
github.com/brutella/hc/netio.(_HAPConnection).Read(0xc820528930, 0xc82014b000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/home/luke/go/src/github.com/brutella/hc/netio/connection.go:100 +0x70
net/http.(_liveSwitchReader).Read(0xc8205876f8, 0xc82014b000, 0x1000, 0x1000, 0xc82048f430, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:219 +0xa4
io.(_LimitedReader).Read(0xc820503b40, 0xc82014b000, 0x1000, 0x1000, 0x200000003, 0x0, 0x0)
/usr/local/go/src/io/io.go:427 +0xbd
bufio.(_Reader).fill(0xc820551e00)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(_Reader).ReadSlice(0xc820551e00, 0xc81ffe970a, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(_Reader).ReadLine(0xc820551e00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(_Reader).readLineSlice(0xc820529020, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(_Reader).ReadLine(0xc820529020, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.ReadRequest(0xc820551e00, 0xc8202d0b60, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:653 +0xb6
net/http.(_conn).readRequest(0xc8205876b0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:633 +0x32f
net/http.(_conn).serve(0xc8205876b0)
/usr/local/go/src/net/http/server.go:1319 +0x727
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:1910 +0x3f6
exit status 2"

I'm also getting
[ERR] bonjour: Failed to bind the udp6 port: listen udp6 :5354: bind: address already in use
but the lights with Siri still can be toggled on and off until it crashes out.

Any help would be greatly appreciated.

I'm seeing the the same issue in UbuntuMATE and Windows 8.

Lights dim but don't turn on/off

My LIFX bulbs dim and change colors fine but do not turn off or on when I click the button. The state changes in the controller but the bulb never turns off.

For reference I have LIFX Color 1000s

import `github.com/pdf/golifx/common` causing errors

Steps:

  • git clone https://github.com/brutella/hklifx && cd hklifx
  • $ go get
  • error:
# hklifx
./hklifxd.go:14: inconsistent definition for type common.SubscriptionTarget during import
    interface { CloseSubscription(*common.Subscription) error; NewSubscription() (*common.Subscription, error) } (in "github.com/pdf/golifx")
    interface { CloseSubscription(*<T>) error; NewSubscription() (*common.Subscription, error) } (in "github.com/pdf/golifx/common")```

I have also filed and issues on golifx: https://github.com/pdf/golifx/issues/5

Go Package Related Problems

When running hklifx, I'm getting a large number of what appear to be package related issues. This is the first time I've done anything with go, so I'm not 100% sure!

user@host: $ go run hklifxd.go -pin 00102003 -v
# github.com/brutella/hc/log
../github.com/brutella/hc/log/log.go:27: l.SetOutput undefined (type *Logger has no field or method SetOutput)
../github.com/brutella/hc/log/log.go:32: l.SetOutput undefined (type *Logger has no field or method SetOutput)
# github.com/brutella/hc/characteristic
../github.com/brutella/hc/characteristic/characteristic.go:5: import /home/pi/sirilifx/pkg/linux_arm/github.com/gosexy/to.a: object is [linux arm go1.6 X:none] expected [linux arm go1.3.3 X:precisestack]
# github.com/brutella/hc/crypto
../github.com/brutella/hc/crypto/ed25519.go:5: import /home/pi/sirilifx/pkg/linux_arm/github.com/agl/ed25519.a: object is [linux arm go1.6 X:none] expected [linux arm go1.3.3 X:precisestack]
# github.com/miekg/dns
../github.com/miekg/dns/dnssec.go:256: undefined: crypto.Signer
../github.com/miekg/dns/dnssec.go:320: undefined: crypto.Signer
../github.com/miekg/dns/sig0.go:17: undefined: crypto.Signer
# golang.org/x/net/ipv4
../golang.org/x/net/ipv4/control_pktinfo.go:13: import /home/pi/sirilifx/pkg/linux_arm/golang.org/x/net/internal/iana.a: object is [linux arm go1.6 X:none] expected [linux arm go1.3.3 X:precisestack]
# golang.org/x/net/ipv6
../golang.org/x/net/ipv6/control_rfc3542_unix.go:13: import /home/pi/sirilifx/pkg/linux_arm/golang.org/x/net/internal/iana.a: object is [linux arm go1.6 X:none] expected [linux arm go1.3.3 X:precisestack]
# github.com/pdf/golifx/protocol/v2/packet
../github.com/pdf/golifx/protocol/v2/packet/packet.go:15: import /home/pi/sirilifx/pkg/linux_arm/github.com/lunixbochs/struc.a: object is [linux arm go1.6 X:none] expected [linux arm go1.3.3 X:precisestack]

What do I need to do to resolve this?

Crash after a few days upon expiry of Lifx bulb

2015/11/21 00:38:43 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/21 00:38:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2015/11/21 00:38:45 [INFO] Expired Device Left side
2015/11/21 00:38:45 [INFO] Expired Device Left side
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x8 pc=0x3c3f]

goroutine 1 [running]:
main.ExpireDevice(0x2160280, 0xc82016c3c0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:116 +0xcf
main.Connect()
/Users/jkelley/.go/src/hklifx/hklifxd.go:72 +0xd80
main.main()
/Users/jkelley/.go/src/hklifx/hklifxd.go:265 +0x19a

goroutine 17 [syscall, 1558 minutes, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1696 +0x1

goroutine 5 [syscall, 1558 minutes]:
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:22 +0x18
created by os/signal.init.1
/usr/local/go/src/os/signal/signal_unix.go:28 +0x37

goroutine 6 [select, 1558 minutes, locked to thread]:
runtime.gopark(0x5ebda8, 0xc820028728, 0x5242c8, 0x6, 0x30c18, 0x2)
/usr/local/go/src/runtime/proc.go:185 +0x163
runtime.selectgoImpl(0xc820028728, 0x0, 0x18)
/usr/local/go/src/runtime/select.go:392 +0xa64
runtime.selectgo(0xc820028728)
/usr/local/go/src/runtime/select.go:212 +0x12
runtime.ensureSigM.func1()
/usr/local/go/src/runtime/signal1_unix.go:227 +0x323
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:1696 +0x1

goroutine 7 [chan receive, 1558 minutes]:
github.com/brutella/hc/hap.OnTermination.func1(0xc8200146c0, 0x5eb7c8)
/Users/jkelley/.go/src/github.com/brutella/hc/hap/termination.go:19 +0x44
created by github.com/brutella/hc/hap.OnTermination
/Users/jkelley/.go/src/github.com/brutella/hc/hap/termination.go:24 +0x158

goroutine 9 [select, 1558 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82008e460)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 10 [select, 2 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc8200149c0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).init
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:101 +0x5bd

goroutine 11 [IO wait]:
net.runtime_pollWait(0xa5d8f8, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8200b61b0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8200b61b0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).readFrom(0xc8200b6150, 0xc8204e4600, 0x5dc, 0x5dc, 0x0, 0x0, 0x0, 0xa58050, 0xc8200101a0)
/usr/local/go/src/net/fd_unix.go:259 +0x2a5
net.(_UDPConn).ReadFromUDP(0xc82002a050, 0xc8204e4600, 0x5dc, 0x5dc, 0x5dc, 0x5dc, 0x0, 0x0)
/usr/local/go/src/net/udpsock_posix.go:61 +0x117
github.com/pdf/golifx/protocol.(_V2).dispatcher(0xc8200835e0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:304 +0x4fd
created by github.com/pdf/golifx/protocol.(_V2).init
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:107 +0x767

goroutine 12 [select]:
github.com/pdf/golifx.(_Client).subscribe.func1(0xc8200b60e0, 0xc820014b40)
/Users/jkelley/.go/src/github.com/pdf/golifx/client.go:646 +0xcf2
created by github.com/pdf/golifx.(_Client).subscribe
/Users/jkelley/.go/src/github.com/pdf/golifx/client.go:681 +0xa6

goroutine 13 [select]:
github.com/pdf/golifx.(_Client).subscribe.func1(0xc8200b60e0, 0xc820014cc0)
/Users/jkelley/.go/src/github.com/pdf/golifx/client.go:646 +0xcf2
created by github.com/pdf/golifx.(_Client).subscribe
/Users/jkelley/.go/src/github.com/pdf/golifx/client.go:681 +0xa6

goroutine 14 [chan receive]:
github.com/pdf/golifx/protocol/v2/device.(_Device).GetLocation(0xc8200d8870, 0x0, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:367 +0x20d
github.com/pdf/golifx/protocol.(_V2).Discover(0xc8200835e0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:155 +0x585
github.com/pdf/golifx.(_Client).discover.func1(0xc8200b60e0)
/Users/jkelley/.go/src/github.com/pdf/golifx/client.go:706 +0x1c7
created by github.com/pdf/golifx.(_Client).discover
/Users/jkelley/.go/src/github.com/pdf/golifx/client.go:709 +0x10b

goroutine 119 [chan receive, 2 minutes]:
main.NewDevice(0x2160280, 0xc82016c000)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 94 [chan receive, 1170 minutes]:
main.NewDevice(0x2160280, 0xc8200d80f0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 35 [select, 1172 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82013e000)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 20 [select, 2 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82014e000)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 103 [chan receive, 1474 minutes]:
main.NewDevice(0x2160280, 0xc82016c0f0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 37 [select, 1476 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82013e0e0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 108080 [select, 244 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc82015b320)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 101 [select, 1474 minutes]:
github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription.func1(0xc820081e00, 0xc820015da0, 0xc820193240)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:103 +0x379
created by github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:129 +0xd7

goroutine 117 [select, 2 minutes]:
github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription.func1(0xc82013d000, 0xc820141020, 0xc820125b10)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:103 +0x379
created by github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:129 +0xd7

goroutine 116 [select, 2 minutes]:
github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription.func1(0xc82013cb00, 0xc820140f60, 0xc820125ac0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:103 +0x379
created by github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:129 +0xd7

goroutine 93 [select, 1170 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc820151380)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 91 [select, 1170 minutes]:
github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription.func1(0xc82013cb00, 0xc820151200, 0xc8201a8c60)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:103 +0x379
created by github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:129 +0xd7

goroutine 92 [select, 1170 minutes]:
github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription.func1(0xc820081e00, 0xc8201512c0, 0xc8201a8cb0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:103 +0x379
created by github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:129 +0xd7

goroutine 102 [select, 1474 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc820015e60)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 118 [select, 2 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc8201410e0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 100 [select, 1474 minutes]:
github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription.func1(0xc82013cb00, 0xc820015ce0, 0xc8201931f0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:103 +0x379
created by github.com/pdf/golifx/protocol/v2/device.(_Group).addDeviceSubscription
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/group.go:129 +0xd7

goroutine 56175 [select, 904 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc82008a060)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 120 [chan receive, 2 minutes]:
main.NewDevice(0x2160280, 0xc82016c000)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 163 [IO wait, 36 minutes]:
net.runtime_pollWait(0xa5d538, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8201d56b0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8201d56b0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).accept(0xc8201d5650, 0x0, 0xa620c8, 0xc82055f000)
/usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(_TCPListener).AcceptTCP(0xc820116288, 0xc820187c50, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
github.com/brutella/hc/netio.(_HAPTCPListener).Accept(0xc8201cdf20, 0x0, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/netio/listener.go:20 +0x44
net/http.(_Server).Serve(0xc8201db680, 0xa98318, 0xc8201cdf20, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1887 +0xb3
github.com/brutella/hc/server.(_hkServer).listenAndServe(0xc8201f6880, 0xc820224bc0, 0x6, 0xa982f0, 0xc8201d9b00, 0xa61d28, 0xc8202241b0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/server/server.go:95 +0x192
github.com/brutella/hc/server.(_hkServer).ListenAndServe(0xc8201f6880, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/server/server.go:74 +0xfc
github.com/brutella/hc/hap.(*ipTransport).Start(0xc8201f2bd0)
/Users/jkelley/.go/src/github.com/brutella/hc/hap/ip_transport.go:105 +0x2e8
main.GetHKLight.func1(0xa61e00, 0xc8201f2bd0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:157 +0x27
created by main.GetHKLight
/Users/jkelley/.go/src/hklifx/hklifxd.go:158 +0x507

goroutine 123 [IO wait]:
net.runtime_pollWait(0xa5d478, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8201d5800, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8201d5800, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).readFrom(0xc8201d57a0, 0xc82022e000, 0x10000, 0x10000, 0x0, 0x0, 0x0, 0xa58050, 0xc8200101a0)
/usr/local/go/src/net/fd_unix.go:259 +0x2a5
net.(_UDPConn).ReadFromUDP(0xc8201162b8, 0xc82022e000, 0x10000, 0x10000, 0xc820359a80, 0x4, 0x0, 0x0)
/usr/local/go/src/net/udpsock_posix.go:61 +0x117
net.(_UDPConn).ReadFrom(0xc8201162b8, 0xc82022e000, 0x10000, 0x10000, 0xa5d9b8, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/udpsock_posix.go:79 +0x116
github.com/oleksandr/bonjour.(_Server).recv(0xc820228870, 0xc8201162b8)
/Users/jkelley/.go/src/github.com/oleksandr/bonjour/server.go:264 +0xde
created by github.com/oleksandr/bonjour.(*Server).mainloop
/Users/jkelley/.go/src/github.com/oleksandr/bonjour/server.go:218 +0x49

goroutine 179 [IO wait, 36 minutes]:
net.runtime_pollWait(0xa5d3b8, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8201a3f70, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8201a3f70, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).accept(0xc8201a3f10, 0x0, 0xa620c8, 0xc82055f060)
/usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(_TCPListener).AcceptTCP(0xc82002a2e8, 0xc8205b5c50, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
github.com/brutella/hc/netio.(_HAPTCPListener).Accept(0xc82024e020, 0x0, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/netio/listener.go:20 +0x44
net/http.(_Server).Serve(0xc8201b55c0, 0xa98318, 0xc82024e020, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1887 +0xb3
github.com/brutella/hc/server.(_hkServer).listenAndServe(0xc820240080, 0xc82024c620, 0x6, 0xa982f0, 0xc8201eec00, 0xa61d28, 0xc8201dfc10, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/server/server.go:95 +0x192
github.com/brutella/hc/server.(_hkServer).ListenAndServe(0xc820240080, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/server/server.go:74 +0xfc
github.com/brutella/hc/hap.(*ipTransport).Start(0xc82007be60)
/Users/jkelley/.go/src/github.com/brutella/hc/hap/ip_transport.go:105 +0x2e8
main.GetHKLight.func1(0xa61e00, 0xc82007be60)
/Users/jkelley/.go/src/hklifx/hklifxd.go:157 +0x27
created by main.GetHKLight
/Users/jkelley/.go/src/hklifx/hklifxd.go:158 +0x507

goroutine 182 [IO wait]:
net.runtime_pollWait(0xa5d2f8, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8202460d0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8202460d0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).readFrom(0xc820246070, 0xc82025c000, 0x10000, 0x10000, 0x0, 0x0, 0x0, 0xa58050, 0xc8200101a0)
/usr/local/go/src/net/fd_unix.go:259 +0x2a5
net.(_UDPConn).ReadFromUDP(0xc82002a318, 0xc82025c000, 0x10000, 0x10000, 0xc820359d00, 0x4, 0x0, 0x0)
/usr/local/go/src/net/udpsock_posix.go:61 +0x117
net.(_UDPConn).ReadFrom(0xc82002a318, 0xc82025c000, 0x10000, 0x10000, 0xa5d9b8, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/udpsock_posix.go:79 +0x116
github.com/oleksandr/bonjour.(_Server).recv(0xc8201ef950, 0xc82002a318)
/Users/jkelley/.go/src/github.com/oleksandr/bonjour/server.go:264 +0xde
created by github.com/oleksandr/bonjour.(*Server).mainloop
/Users/jkelley/.go/src/github.com/oleksandr/bonjour/server.go:218 +0x49

goroutine 58154 [select, 842 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82008f340)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 36143 [select, 1166 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc82033f680)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 36144 [chan receive, 1166 minutes]:
main.NewDevice(0x2160280, 0xc82016c2d0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 92703 [select, 458 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc82011cc00)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 58053 [select, 904 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82008f260)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 144454 [select]:
github.com/pdf/golifx/protocol/v2/device.(_Device).Send.func1(0xc82015c120, 0xc8200d8870, 0xc82032df80, 0xc82032d5c0, 0x101f6, 0xc8203a0ee0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:535 +0x6f7
created by github.com/pdf/golifx/protocol/v2/device.(_Device).Send
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:563 +0x391

goroutine 67665 [IO wait, 788 minutes]:
net.runtime_pollWait(0xa5d5f8, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8201e2e60, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8201e2e60, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).Read(0xc8201e2e00, 0xc82013a000, 0x1000, 0x1000, 0x0, 0xa58050, 0xc8200101a0)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(_conn).Read(0xc820116460, 0xc82013a000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
bufio.(_Reader).fill(0xc8201ac5a0)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(_Reader).Read(0xc8201ac5a0, 0xc820224f30, 0x2, 0x8, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:207 +0x260
io.ReadAtLeast(0xa5da68, 0xc8201ac5a0, 0xc820224f30, 0x2, 0x8, 0x2, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0xa5da68, 0xc8201ac5a0, 0xc820224f30, 0x2, 0x8, 0xb, 0x0, 0x0)
/usr/local/go/src/io/io.go:316 +0x62
encoding/binary.Read(0xa5da68, 0xc8201ac5a0, 0xa5dae8, 0x7b1278, 0x3acaa0, 0xc820224f20, 0x0, 0x0)
/usr/local/go/src/encoding/binary/binary.go:148 +0x136
github.com/brutella/hc/crypto.(_secureSession).Decrypt(0xc8202774a0, 0xa5da68, 0xc8201ac5a0, 0x0, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/crypto/secure_session.go:98 +0x124
github.com/brutella/hc/netio.(_HAPConnection).DecryptedRead(0xc820228930, 0xc8200f9000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/netio/connection.go:68 +0x16b
github.com/brutella/hc/netio.(_HAPConnection).Read(0xc820228930, 0xc8200f9000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/netio/connection.go:100 +0x70
net/http.(_liveSwitchReader).Read(0xc820284048, 0xc8200f9000, 0x1000, 0x1000, 0xc820354530, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:219 +0xa4
io.(_LimitedReader).Read(0xc82028c520, 0xc8200f9000, 0x1000, 0x1000, 0x200000003, 0x0, 0x0)
/usr/local/go/src/io/io.go:427 +0xbd
bufio.(_Reader).fill(0xc8203aca20)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(_Reader).ReadSlice(0xc8203aca20, 0xc81ffe200a, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(_Reader).ReadLine(0xc8203aca20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(_Reader).readLineSlice(0xc820282180, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(_Reader).ReadLine(0xc820282180, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.ReadRequest(0xc8203aca20, 0xc8203be540, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:653 +0xb6
net/http.(_conn).readRequest(0xc820284000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:633 +0x32f
net/http.(_conn).serve(0xc820284000)
/usr/local/go/src/net/http/server.go:1319 +0x727
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:1910 +0x3f6

goroutine 95077 [select, 2 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82014fa40)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 114937 [chan receive, 112 minutes]:
main.NewDevice(0x2160280, 0xc82016c5a0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 58092 [chan send, 904 minutes]:
github.com/pdf/golifx/protocol/v2/device.(_Device).Send.func1(0xc82038f7a0, 0xc82008f260, 0xc82038f680, 0xc82038f440, 0x10107, 0xc820171b20)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:554 +0x5fe
created by github.com/pdf/golifx/protocol/v2/device.(_Device).Send
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:563 +0x391

goroutine 76942 [select, 640 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc820249380)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 28097 [IO wait, 1266 minutes]:
net.runtime_pollWait(0xa5d6b8, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc820246060, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc820246060, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).Read(0xc820246000, 0xc8201dc000, 0x1000, 0x1000, 0x0, 0xa58050, 0xc8200101a0)
/usr/local/go/src/net/fd_unix.go:232 +0x23a
net.(_conn).Read(0xc82002a000, 0xc8201dc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:172 +0xe4
bufio.(_Reader).fill(0xc8205601e0)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(_Reader).Read(0xc8205601e0, 0xc8202246d0, 0x2, 0x8, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:207 +0x260
io.ReadAtLeast(0xa5da68, 0xc8205601e0, 0xc8202246d0, 0x2, 0x8, 0x2, 0x0, 0x0, 0x0)
/usr/local/go/src/io/io.go:298 +0xe6
io.ReadFull(0xa5da68, 0xc8205601e0, 0xc8202246d0, 0x2, 0x8, 0xb, 0x0, 0x0)
/usr/local/go/src/io/io.go:316 +0x62
encoding/binary.Read(0xa5da68, 0xc8205601e0, 0xa5dae8, 0x7b1278, 0x3acaa0, 0xc8202246b0, 0x0, 0x0)
/usr/local/go/src/encoding/binary/binary.go:148 +0x136
github.com/brutella/hc/crypto.(_secureSession).Decrypt(0xc8205633e0, 0xa5da68, 0xc8205601e0, 0x0, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/crypto/secure_session.go:98 +0x124
github.com/brutella/hc/netio.(_HAPConnection).DecryptedRead(0xc8200fe120, 0xc820153000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/netio/connection.go:68 +0x16b
github.com/brutella/hc/netio.(_HAPConnection).Read(0xc8200fe120, 0xc820153000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/netio/connection.go:100 +0x70
net/http.(_liveSwitchReader).Read(0xc8200ac0f8, 0xc820153000, 0x1000, 0x1000, 0xc82017ce30, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:219 +0xa4
io.(_LimitedReader).Read(0xc820446200, 0xc820153000, 0x1000, 0x1000, 0x200000003, 0x0, 0x0)
/usr/local/go/src/io/io.go:427 +0xbd
bufio.(_Reader).fill(0xc820392000)
/usr/local/go/src/bufio/bufio.go:97 +0x1e9
bufio.(_Reader).ReadSlice(0xc820392000, 0xc81fff070a, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:328 +0x21a
bufio.(_Reader).ReadLine(0xc820392000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:357 +0x53
net/textproto.(_Reader).readLineSlice(0xc8200fe150, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x81
net/textproto.(_Reader).ReadLine(0xc8200fe150, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x40
net/http.ReadRequest(0xc820392000, 0xc8201f0000, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:653 +0xb6
net/http.(_conn).readRequest(0xc8200ac0b0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:633 +0x32f
net/http.(_conn).serve(0xc8200ac0b0)
/usr/local/go/src/net/http/server.go:1319 +0x727
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:1910 +0x3f6

goroutine 76931 [select, 642 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc8201f1340)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 130982 [select, 2 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc8203bfb20)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 58286 [chan receive, 840 minutes]:
main.NewDevice(0x2160280, 0xc8200d83c0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 114936 [select, 112 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc8203f9380)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 95103 [select]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc8204aade0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 63324 [select, 678 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82014e9a0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 63453 [select, 676 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc8200b38c0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 94685 [select, 456 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82014f0a0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 92704 [chan receive, 458 minutes]:
main.NewDevice(0x2160280, 0xc82016c780)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 94822 [select, 454 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc820179260)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 63454 [chan receive, 676 minutes]:
main.NewDevice(0x2160280, 0xc82016c690)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 95104 [chan receive]:
main.NewDevice(0x2160280, 0xc82016c3c0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 36409 [select, 930 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82013fce0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 108032 [select, 246 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82014fb20)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 76943 [chan receive, 640 minutes]:
main.NewDevice(0x2160280, 0xc82016c1e0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 108081 [chan receive, 244 minutes]:
main.NewDevice(0x2160280, 0xc82016c4b0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 56127 [select, 906 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc8201f09a0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 92698 [select, 460 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82008fc00)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 131048 [chan receive]:
main.NewDevice(0x2160280, 0xc82016c870)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 58091 [select, 902 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc82038e0c0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 56176 [chan receive, 904 minutes]:
main.NewDevice(0x2160280, 0xc8200d84b0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 131022 [IO wait]:
net.runtime_pollWait(0xa5d0b8, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8203e39c0, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8203e39c0, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).readFrom(0xc8203e3960, 0xc820302000, 0x10000, 0x10000, 0x0, 0x0, 0x0, 0xa58050, 0xc8200101a0)
/usr/local/go/src/net/fd_unix.go:259 +0x2a5
net.(_UDPConn).ReadFromUDP(0xc82002a7b8, 0xc820302000, 0x10000, 0x10000, 0xc820364240, 0x4, 0x0, 0x0)
/usr/local/go/src/net/udpsock_posix.go:61 +0x117
net.(_UDPConn).ReadFrom(0xc82002a7b8, 0xc820302000, 0x10000, 0x10000, 0xa5d9b8, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/udpsock_posix.go:79 +0x116
github.com/oleksandr/bonjour.(_Server).recv(0xc820229ce0, 0xc82002a7b8)
/Users/jkelley/.go/src/github.com/oleksandr/bonjour/server.go:264 +0xde
created by github.com/oleksandr/bonjour.(*Server).mainloop
/Users/jkelley/.go/src/github.com/oleksandr/bonjour/server.go:218 +0x49

goroutine 36445 [chan receive, 928 minutes]:
main.NewDevice(0x2160280, 0xc8200d82d0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 94823 [chan receive, 454 minutes]:
main.NewDevice(0x2160280, 0xc8200d85a0)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 79914 [select, 482 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc820483f20)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 79800 [select, 484 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc8201f1ce0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 58270 [select, 840 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc820178cc0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 36444 [select, 928 minutes]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc8203f6660)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 36130 [select, 1168 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82013f340)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 79915 [chan receive, 482 minutes]:
main.NewDevice(0x2160280, 0xc8200d8690)
/Users/jkelley/.go/src/hklifx/hklifxd.go:86 +0x160
created by main.Connect
/Users/jkelley/.go/src/hklifx/hklifxd.go:62 +0x9dc

goroutine 131047 [select]:
github.com/pdf/golifx/protocol.(_V2).broadcastLimiter(0xc8200835e0, 0xc8201540c0)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:269 +0x298
created by github.com/pdf/golifx/protocol.(_V2).addDevice
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2.go:505 +0x4d8

goroutine 114915 [select, 114 minutes]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler(0xc82014fc00)
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:617 +0xae1
created by github.com/pdf/golifx/protocol/v2/device.New
/Users/jkelley/.go/src/github.com/pdf/golifx/protocol/v2/device/device.go:687 +0x165

goroutine 131033 [IO wait, 22 minutes]:
net.runtime_pollWait(0xa5d838, 0x72, 0xc8200101a0)
/usr/local/go/src/runtime/netpoll.go:157 +0x60
net.(_pollDesc).Wait(0xc8203e3870, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:73 +0x3a
net.(_pollDesc).WaitRead(0xc8203e3870, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:78 +0x36
net.(_netFD).accept(0xc8203e3810, 0x0, 0xa620c8, 0xc82055f780)
/usr/local/go/src/net/fd_unix.go:408 +0x27c
net.(_TCPListener).AcceptTCP(0xc82002a788, 0xc8205b2c50, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:254 +0x4d
github.com/brutella/hc/netio.(_HAPTCPListener).Accept(0xc82027f400, 0x0, 0x0, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/netio/listener.go:20 +0x44
net/http.(_Server).Serve(0xc8203da7e0, 0xa98318, 0xc82027f400, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1887 +0xb3
github.com/brutella/hc/server.(_hkServer).listenAndServe(0xc820418000, 0xc8205571a0, 0x6, 0xa982f0, 0xc820228d80, 0xa61d28, 0xc820556790, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/server/server.go:95 +0x192
github.com/brutella/hc/server.(_hkServer).ListenAndServe(0xc820418000, 0x0, 0x0)
/Users/jkelley/.go/src/github.com/brutella/hc/server/server.go:74 +0xfc
github.com/brutella/hc/hap.(*ipTransport).Start(0xc820414120)
/Users/jkelley/.go/src/github.com/brutella/hc/hap/ip_transport.go:105 +0x2e8
main.GetHKLight.func1(0xa61e00, 0xc820414120)
/Users/jkelley/.go/src/hklifx/hklifxd.go:157 +0x27
created by main.GetHKLight
/Users/jkelley/.go/src/hklifx/hklifxd.go:158 +0x507

State changes are not propagated to iOS devices

When the bulbs state is changed from another iOS device or the LIFX app the new state is not reflected in HomeKit on iOS devices. As an example, the event handler for common.EventUpdateColor calls:

hkLight.light.SetHue(hue)
hkLight.light.SetSaturation(saturation)
hkLight.light.SetBrightness(int(brightness))

which updates the bulbs state in HomeKit, but the change is not reflected on iOS devices. Not sure if this is a bug in hklifx or HomeControl.

Can't start the program

When ever I try to start the program or run go get I get
hklifx/vendor/github.com/brutella/hc/crypto/chacha20poly1305
vendor\github.com\brutella\hc\crypto\chacha20poly1305\chacha20_poly1305.go:28: undefined: chacha20.NewChaCha20Poly1305
vendor\github.com\brutella\hc\crypto\chacha20poly1305\chacha20_poly1305.go:29: not enough arguments to return
have ()
want ([]byte, error)
vendor\github.com\brutella\hc\crypto\chacha20poly1305\chacha20_poly1305.go:35: undefined: chacha20.TagSize
vendor\github.com\brutella\hc\crypto\chacha20poly1305\chacha20_poly1305.go:35: invalid array bound chacha20.TagSize
vendor\github.com\brutella\hc\crypto\chacha20poly1305\chacha20_poly1305.go:46: undefined: chacha20.TagSize
vendor\github.com\brutella\hc\crypto\chacha20poly1305\chacha20_poly1305.go:51: undefined: chacha20.NewChaCha20Poly1305

Homekit devices not found in Homekit app

Hi,

I'm running hklifxd and when searching for devices in a homekit app nothing is found. I have ensured that the daemon is allowed through the firewall etc etc.

I get the below output which is a little worrying

2016/01/13 18:32:46 [INFO] Discovered Location Our Home
2016/01/13 18:32:46 [INFO] Discovered Group Our Room
2016/01/13 18:32:48 [INFO] Discovered Device Zoe's Side
2016/01/13 18:32:48 [INFO] Creating New HKLight for Zoe's Side
2016/01/13 18:32:48 [INFO] Discovered Device Tristan's Side
2016/01/13 18:32:48 [INFO] Creating New HKLight for Tristan's Side
2016/01/13 18:32:48 [INFO] Accessory IP is 192.168.1.87
2016/01/13 18:32:48 [INFO] Accessory IP is 192.168.1.87
2016/01/13 18:32:48 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :5353: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
2016/01/13 18:32:48 [ERR] bonjour: Failed to bind to udp6 port: listen udp6 :5353: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:45 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:46 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:46 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:46 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:33:46 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:15 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/13 18:34:16 [INFO] Unknown Device Event: shared.EventBroadcastSent

Any ideas?

panic: send on closed channel

Hi, after 48hours of running hklifx crashes with output:

DEBUG 2020/03/09 07:53:50 characteristics.go:43: 192.168.88.2:50219 GET /characteristics map[id:[1.12,1.11,1.10,1.9]]
DEBUG 2020/03/09 07:56:23 connection.go:112: Close connection and remove session
DEBUG 2020/03/09 11:02:36 pair-verify.go:37: 192.168.88.3:60804 POST /pair-verify
DEBUG 2020/03/09 11:02:36 pair-verify.go:44: Create new pair verify controller
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:93: ->     A: 57ffddd2693bb67a1bd24348e82e1523ecc7373c1426d56463a3f751a0230119
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:127:        K: 386c0edb86a6fbabdcdc5f6eee7defab9eaa6eef40792258688724412264b1e9
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:128:        B: 5076c96093098f7ba92a61458f20f7270940071a92738c609398fdcc0359f938
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:129:        S: c03a269252708e995ac5f4ec30e5064470ea25ed011559f4d41c14ec11bd784e
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:130:   Shared: a0b0078824fc0da15c15de35b759cc395a626702be940983c9f450b95ee25d18
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:132: <-     B: 5076c96093098f7ba92a61458f20f7270940071a92738c609398fdcc0359f938
DEBUG 2020/03/09 11:02:36 pair-verify.go:37: 192.168.88.3:60804 POST /pair-verify
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:152: ->     Message: 09360030386be42c02fe1e15e1a8bf31e3fdb4bed9f64b1ad69452e836912c355937153db599117dd3e2a570a115588ae09cce810c92b7c14d95580b08657e10eebfd443e6e9e976fd63c0c2b23059df0578b69ac16b4f79023c06ab9f27a8c4fece77cc2023b90c
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:153: ->     MAC: 6461ce05b1e3dd22271d4bd994199c3f
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:172:     client: 599BCF21-CDB5-4CD9-ABAD-085D418889F5
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:173:  signature: c75e1fb5e326afe61b2543e698adf17217f62b8433d6944b86642d1f4b78b9c409365af9706afe321696a50a7494858d64f66be60e17f6daa1502a4f43dcf104
DEBUG 2020/03/09 11:02:36 verify_server_controller.go:194: signature is valid
DEBUG 2020/03/09 11:02:36 pair-verify.go:70: Setup secure session
DEBUG 2020/03/09 11:02:36 accessories.go:34: 192.168.88.3:60804 GET /accessories
DEBUG 2020/03/09 11:02:36 accessories.go:49: {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"Lampa Stojฤ…ca","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"},{"iid":7,"type":"52","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":8,"type":"43","characteristics":[{"iid":9,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":10,"type":"8","perms":["pr","pw","ev"],"value":35,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"2F","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":12,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2020/03/09 11:02:36 characteristics.go:43: 192.168.88.3:60804 GET /characteristics map[id:[1.12,1.11,1.10,1.9]]
DEBUG 2020/03/09 11:05:09 connection.go:112: Close connection and remove session
DEBUG 2020/03/09 11:17:42 pair-verify.go:37: 192.168.88.3:60829 POST /pair-verify
DEBUG 2020/03/09 11:17:42 pair-verify.go:44: Create new pair verify controller
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:93: ->     A: 0d8dd87894062c3b7dec767e9c1908059e35c2d193e19abd55614a5682863448
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:127:        K: 219e3ac9740ed4fb050fb1a2a2d251026a7a5c93fab43d2b411451ef293dc04c
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:128:        B: 6551414605260ccf9c1ca86a0a28a51596b6a3b03338463f5fd4001ca42bfb72
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:129:        S: 5e780d6a6db944cadf59494939af5c25fbef24b4c485ddac7f4faec6e93c3a27
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:130:   Shared: 28a4a55eeff010870267ddcca303633ef2b927ca5c8fdc7b3d189bcf896bb84b
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:132: <-     B: 6551414605260ccf9c1ca86a0a28a51596b6a3b03338463f5fd4001ca42bfb72
DEBUG 2020/03/09 11:17:42 pair-verify.go:37: 192.168.88.3:60829 POST /pair-verify
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:152: ->     Message: 82986ae099398d2cbed13867cb7417207892e16794fee7bf99a82b3c4e7951472b0a14a97f9ae99110a170509f8d1a0342973b0ca4f1d275880a0707402774a94a0058d9cbf437078ecc8882acc7a20e28b9908ac8d3acdc81b813726090fad9a852c2133f29c496
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:153: ->     MAC: 0ac011e9621b7b2427cfe45d71a59eee
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:172:     client: 599BCF21-CDB5-4CD9-ABAD-085D418889F5
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:173:  signature: 0ff3dcb07f20836dc86f91970bd70e9538e4fe0abb9262cca50fae0ae9ee6362589427d848bb5ca8099b1414d88c75be469e74cf642da057e79ad4752619a10d
DEBUG 2020/03/09 11:17:42 verify_server_controller.go:194: signature is valid
DEBUG 2020/03/09 11:17:42 pair-verify.go:70: Setup secure session
DEBUG 2020/03/09 11:17:42 accessories.go:34: 192.168.88.3:60829 GET /accessories
DEBUG 2020/03/09 11:17:42 accessories.go:49: {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"Lampa Stojฤ…ca","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"},{"iid":7,"type":"52","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":8,"type":"43","characteristics":[{"iid":9,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":10,"type":"8","perms":["pr","pw","ev"],"value":35,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"2F","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":12,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2020/03/09 11:24:44 connection.go:112: Close connection and remove session
panic: send on closed channel

goroutine 198028 [running]:
github.com/pdf/golifx/protocol/v2/device.(*Device).handler.func1(0x1a20000, 0x1d8e160, 0x1e77120, 0xfb)
	/go/pkg/mod/github.com/pdf/[email protected]/protocol/v2/device/device.go:776 +0xdc
created by github.com/pdf/golifx/protocol/v2/device.(*Device).handler
	/go/pkg/mod/github.com/pdf/[email protected]/protocol/v2/device/device.go:768 +0x28c

192.168.88.2 and 192.168.88.3 is an iPhone and iPad

Getting issue when running hklifx

I get this issue when I run:

Also, what are the installation steps on the iPhone when I run this?

user@host:$ go run hklifxd.go -pin 00102003 -v
vendor/github.com/brutella/hc/crypto/chacha20poly1305/chacha20_poly1305.go:6:2: cannot find package "github.com/aead/chacha20" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/brutella/hc/vendor/github.com/aead/chacha20 (vendor tree)
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/aead/chacha20
	/usr/local/go/src/github.com/aead/chacha20 (from $GOROOT)
	/Users/robertsaunders/code/go/src/github.com/aead/chacha20 (from $GOPATH)
vendor/github.com/pdf/golifx/protocol/v2/packet/packet.go:15:2: cannot find package "github.com/lunixbochs/struc" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/lunixbochs/struc (vendor tree)
	/usr/local/go/src/github.com/lunixbochs/struc (from $GOROOT)
	/Users/robertsaunders/code/go/src/github.com/lunixbochs/struc (from $GOPATH)
vendor/github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:10:2: cannot find package "github.com/miekg/dns" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/brutella/hc/vendor/github.com/miekg/dns (vendor tree)
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/miekg/dns
	/usr/local/go/src/github.com/miekg/dns (from $GOROOT)
	/Users/robertsaunders/code/go/src/github.com/miekg/dns (from $GOPATH)
vendor/github.com/pdf/golifx/common/subscription.go:7:2: cannot find package "github.com/satori/go.uuid" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/satori/go.uuid (vendor tree)
	/usr/local/go/src/github.com/satori/go.uuid (from $GOROOT)
	/Users/robertsaunders/code/go/src/github.com/satori/go.uuid (from $GOPATH)
vendor/github.com/brutella/hc/crypto/curve25519/curve25519.go:5:2: cannot find package "golang.org/x/crypto/curve25519" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/curve25519 (vendor tree)
	/Users/robertsaunders/code/go/src/hklifx/vendor/golang.org/x/crypto/curve25519
	/usr/local/go/src/golang.org/x/crypto/curve25519 (from $GOROOT)
	/Users/robertsaunders/code/go/src/golang.org/x/crypto/curve25519 (from $GOPATH)
vendor/github.com/brutella/hc/crypto/hkdf/hkdf.go:5:2: cannot find package "golang.org/x/crypto/hkdf" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/crypto/hkdf (vendor tree)
	/Users/robertsaunders/code/go/src/hklifx/vendor/golang.org/x/crypto/hkdf
	/usr/local/go/src/golang.org/x/crypto/hkdf (from $GOROOT)
	/Users/robertsaunders/code/go/src/golang.org/x/crypto/hkdf (from $GOPATH)
vendor/github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:11:2: cannot find package "golang.org/x/net/ipv4" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/net/ipv4 (vendor tree)
	/Users/robertsaunders/code/go/src/hklifx/vendor/golang.org/x/net/ipv4
	/usr/local/go/src/golang.org/x/net/ipv4 (from $GOROOT)
	/Users/robertsaunders/code/go/src/golang.org/x/net/ipv4 (from $GOPATH)
vendor/github.com/brutella/hc/vendor/github.com/oleksandr/bonjour/client.go:12:2: cannot find package "golang.org/x/net/ipv6" in any of:
	/Users/robertsaunders/code/go/src/hklifx/vendor/github.com/brutella/hc/vendor/golang.org/x/net/ipv6 (vendor tree)
	/Users/robertsaunders/code/go/src/hklifx/vendor/golang.org/x/net/ipv6
	/usr/local/go/src/golang.org/x/net/ipv6 (from $GOROOT)
	/Users/robertsaunders/code/go/src/golang.org/x/net/ipv6 (from $GOPATH)

Communication error.

I have a similar problem as in #5 and #8, or maybe just need some clarification.

I run the daemon with the -pin argument, and I want to control my LIFX lamps that are already paired with the LIFX app since before.

In the Home app when trying to add the lamps, i get this warning "This accessory is not certified and may not work reliably with Homekit", I tap "Add anyway", and then I just get an error with "Error Network or other communication failure occurred". And at the same time in the daemon console I see "Close connection and remove session".

What is the specified pin needed for? Is that a later step? Why can't I communicate with the lamps? No errors show up in the log.

% go run hklifxd.go -pin 00102003 -v
2016/05/19 09:31:40 [INFO] Discovered Location Hemma
2016/05/19 09:31:40 [INFO] Discovered Group Kรถk
2016/05/19 09:31:40 [INFO] Discovered Device Kรถk salong
2016/05/19 09:31:40 [INFO] Creating New HKLight for Kรถk salong
2016/05/19 09:31:40 [INFO] Discovered Device Kรถk fรถnster
2016/05/19 09:31:40 [INFO] Creating New HKLight for Kรถk fรถnster
2016/05/19 09:31:41 [INFO] Accessory IP is 10.0.1.7
2016/05/19 09:31:41 [INFO] Accessory IP is 10.0.1.7
2016/05/19 09:31:42 [INFO] Close connection and remove session
2016/05/19 09:31:44 [INFO] Close connection and remove session

And thank you for creating this tool! I really hope I can get this to work. Finally Siri will be able to do something for me.

Devices stop working after a few minutes

Set up and start works as it should, but after a few minutes this appears in the log:

2016/01/03 12:44:24 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/03 12:44:24 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/03 12:44:24 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/03 12:44:24 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/03 12:44:24 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/03 12:44:24 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/03 12:44:24 [INFO] Unknown Device Event: shared.EventBroadcastSent
2016/01/03 12:44:33 [INFO] Close connection and remove session
2016/01/03 12:44:33 [INFO] Close connection and remove session
2016/01/03 12:44:33 [INFO] Close connection and remove session
2016/01/03 12:44:33 [INFO] Close connection and remove session
2016/01/03 12:44:33 [INFO] Close connection and remove session
2016/01/03 12:44:33 [INFO] Close connection and remove session

After this all the LIFX lights are marked as "Not Reachable" in the home app and hklifx needs to be restarded.

Newest "Generation 3" LIFX bulb seen as "Unsupported Device"

Though two older "Color 1000" bulbs are still working fine, an "All New Generation 3" LIFX bulb I purchased recently is seen as an "Unsupported Device."

In the LIFX app, the new, unsupported bulb model is listed as "LIFX (A19) v 2.9", whereas the older, compatible bulb model is listed as "LIFX Color 1000 v 1.20".

Here are two links to the unsupported bulb:
http://www.lifx.com/products/lifx?variant=30732331715
https://www.amazon.com/gp/product/B01KY02MS8

no output

When i rungo run hklifxd.go -pin 00102003 -v it sits and does nothing.
~/work/src/hklifx # go get
~/work/src/hklifx # go run hklifxd.go -pin 00102003 -v

any ideas?

iOS 11 issue?

Under iOS 11, when I use either the Apple "Home" app or the brutella "Home" app to attempt to add an accessory with hklifx running, no LIFX bulbs are found.

Furthermore, hklifx sees no inquiries at all. The only feedback I ever get from hklifx right now is:

DEBUG 2017/09/21 17:57:40 Discovered Group Bedroom
DEBUG 2017/09/21 17:57:40 Discovered Location My Home
DEBUG 2017/09/21 17:57:40 Discovered Device Right
DEBUG 2017/09/21 17:57:40 Creating New HKLight for Right
INFO 2017/09/21 17:57:40 Accessory IP is 192.168.1.239
DEBUG 2017/09/21 17:57:40 Discovered Device Left
DEBUG 2017/09/21 17:57:40 Creating New HKLight for Left
INFO 2017/09/21 17:57:40 Accessory IP is 192.168.1.239

I can't find any activity that inspires even one more message out of hklifx.

Barring ongoing memory leak problems, hklifx used to work for me, though I don't know for certain that iOS 11 changes are to blame for this.

Is anyone else having the same or contradictory results under iOS 11?

Update golifx to v0.5.1

I just fixed a raft of bugs, particularly groups/locations were not in good shape, plus a couple of other races. Should be a lot more consistent now.

hklifx terminates with "signal: killed"

Summary:
After working for minutes or hours, hklifx unexpectedly terminates with a "signal: killed" message.

Configuration:
Latest (as of 2017-03-21) hklifx running under go1.7 on a Raspberry Pi 3 Model B running Raspbian 4.4.38-v7+, and controlling two (2) "Gen 2" LIFX Color 1000 bulbs

Observations:
hklifx used to work perfectly for me for months at a time controlling two (2) "Gen 2" LIFX Color 1000 bulbs.

Eventually, I added one of the newer "Gen 3" LIFX A19 bulbs, and hklifx began working for only minutes or hours at a time; I can't say for certain if was the addition of the third bulb, the updating of other bulbs' firmware, the updating of hklifx, or possibly something else that precipitated the change in hklifx's behavior.

For a while, I assumed hklifx was choking on the "Gen 3" bulb, and hoped a new release would fix things up.

Recently, however, I removed the new bulb, and find hklifx is still unhappy for some reason.

Output:
Below is the verbose output of everything from starting hklifx to watching it terminate, all without operating the bulbs at all:

$ go run hklifxd.go -pin 00102003 -v
DEBUG 2017/03/20 15:24:03 Discovered Group Basement Room
DEBUG 2017/03/20 15:24:03 Discovered Location My Home
DEBUG 2017/03/20 15:24:03 Discovered Device BRRight
DEBUG 2017/03/20 15:24:03 Creating New HKLight for BRRight
INFO 2017/03/20 15:24:04 Accessory IP is 192.168.1.239
DEBUG 2017/03/20 15:24:04 Discovered Device BRLeft
DEBUG 2017/03/20 15:24:04 Creating New HKLight for BRLeft
INFO 2017/03/20 15:24:04 Accessory IP is 192.168.1.239
DEBUG 2017/03/20 15:24:04 192.168.1.230:49798 POST /pair-verify
DEBUG 2017/03/20 15:24:04 Create new pair verify controller
DEBUG 2017/03/20 15:24:04 ->     A: 20086ad3c29db73abd9dcc113ca1898f8f25e83a57e6f9a30370d1b5412ed434
DEBUG 2017/03/20 15:24:04 192.168.1.232:49582 POST /pair-verify
DEBUG 2017/03/20 15:24:04 Create new pair verify controller
DEBUG 2017/03/20 15:24:04        K: cbc06c45f6bad9b002d713f0be7c4ac67c8c7a4fec4725fe92e0b98cf10774eb
DEBUG 2017/03/20 15:24:04        B: 1c4dcd28a9370864b2ace52c441ed667d4232b95c8a90a555c5de3a2b1dad75b
DEBUG 2017/03/20 15:24:04        S: 41111149a202fa18e5cf3fe1b82fab6c669408a8ee2e400700623b7cbdd8b32a
DEBUG 2017/03/20 15:24:04   Shared: 4e6cccc887e707d151ba06948676fd76d25875abc37046de0a534b10dfc73267
DEBUG 2017/03/20 15:24:04 <-     B: 1c4dcd28a9370864b2ace52c441ed667d4232b95c8a90a555c5de3a2b1dad75b
DEBUG 2017/03/20 15:24:04 ->     A: 932f1104fee76d4c65033aed4d6dba5549775a8cc2eff5e2f4b89f1fcf11911a
DEBUG 2017/03/20 15:24:04        K: 9d23f843a60410778c0c5308ede77a82ec0fdd428358db09fb57eb2aedd526f3
DEBUG 2017/03/20 15:24:04        B: 19cb1d4fee61f124715f177c3adacbab5ec821c35bf8b712e35dceae1b6b1f43
DEBUG 2017/03/20 15:24:04        S: 88c6598e160778e9d21f452cc698f1955391c3696f2a6d8b6e24518134dbb2c1
DEBUG 2017/03/20 15:24:04   Shared: c349617e307fa3f1d31a7a61636983b37094559b112bbb0ad91e01192c84c279
DEBUG 2017/03/20 15:24:04 <-     B: 19cb1d4fee61f124715f177c3adacbab5ec821c35bf8b712e35dceae1b6b1f43
DEBUG 2017/03/20 15:24:04 192.168.1.230:49798 POST /pair-verify
DEBUG 2017/03/20 15:24:04 ->     Message: 95de767a55a5773293a7e60aa38126b8441dc6b6af2edef5c38f2ed973c3afcd9b2061041a4808bfa49d6a0afbfe486487b5d212763db3656c38c8fb05e4a6672a1ced8e9d59abd4fd78486677a66706e74fb0e569dbbabfd221e12060db8ec85b3ac358aa88d466
DEBUG 2017/03/20 15:24:04 ->     MAC: 98d1d0ddecbcb93a0d5cfb57f239ca4e
DEBUG 2017/03/20 15:24:04     client: EB0D218D-17C2-4B5E-B5B3-453315FDE6C0
DEBUG 2017/03/20 15:24:04  signature: aacb14a56c84a2257f6deca7da6e021ba094a017b2cb1c886053e043f4bd19907045a6b2dfe0088f6311dc451d1efc0b3a74a0a8fdf70ef5346fda91746ca106
DEBUG 2017/03/20 15:24:04 signature is valid
DEBUG 2017/03/20 15:24:04 Setup secure session
DEBUG 2017/03/20 15:24:04 192.168.1.230:49798 GET /accessories
DEBUG 2017/03/20 15:24:04 {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"BRRight","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":7,"type":"43","characteristics":[{"iid":8,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":9,"type":"8","perms":["pr","pw","ev"],"value":51,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":10,"type":"2F","perms":["pr","pw","ev"],"value":100,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2017/03/20 15:24:04 192.168.1.232:49582 POST /pair-verify
DEBUG 2017/03/20 15:24:04 ->     Message: 1d012443666ab00f98c7845813f63f57fbdaf0bea3890074b03fea3fb448743dc434337395c50abc2e123eb82735e302964bc8cce691d0e979c87d9185c211250f633f6342d9a54351412cfda33a9f9d16a5f2e96ee8e445e244c77be1d20b41d519f85a3ee3b113
DEBUG 2017/03/20 15:24:04 ->     MAC: 32320dc71bec640fd8bb925a256bb0be
DEBUG 2017/03/20 15:24:04     client: EB0D218D-17C2-4B5E-B5B3-453315FDE6C0
DEBUG 2017/03/20 15:24:04  signature: b2fd7ced4fe77a7ad93e1018de74060405be767af0e7679b5e322c5551e489658d1f90628700505b1fa8025545ab2a6a9a9c200a7c99628731eda15ccca2e006
DEBUG 2017/03/20 15:24:04 signature is valid
DEBUG 2017/03/20 15:24:04 Setup secure session
DEBUG 2017/03/20 15:24:04 192.168.1.232:49582 GET /accessories
DEBUG 2017/03/20 15:24:04 {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"BRRight","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":7,"type":"43","characteristics":[{"iid":8,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":9,"type":"8","perms":["pr","pw","ev"],"value":51,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":10,"type":"2F","perms":["pr","pw","ev"],"value":100,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2017/03/20 15:24:04 192.168.1.230:49799 POST /pair-verify
DEBUG 2017/03/20 15:24:04 Create new pair verify controller
DEBUG 2017/03/20 15:24:04 ->     A: a634451eed00c1df124c35fbb8634a52bcdcedc02161caa7725445103091ad4e
DEBUG 2017/03/20 15:24:04        K: f54447947f77d76d17fc67a67573c3d110a4a8d97a619f24bc88bece41fd2a7e
DEBUG 2017/03/20 15:24:04        B: b62ecef3e02895d63d271ddd65a64ba281f305ac36f5a126ba410cfc133f9f6d
DEBUG 2017/03/20 15:24:04        S: efe4428880194b06136c395c5d1dfb5b6fe2a60615d41fe0e1d21d18f3e5611b
DEBUG 2017/03/20 15:24:04   Shared: 1196bc757fccfe1cc8e818f678f997f3792b87fd00086c6fdb5d3994d48d136c
DEBUG 2017/03/20 15:24:04 <-     B: b62ecef3e02895d63d271ddd65a64ba281f305ac36f5a126ba410cfc133f9f6d
DEBUG 2017/03/20 15:24:04 192.168.1.232:49583 POST /pair-verify
DEBUG 2017/03/20 15:24:04 Create new pair verify controller
DEBUG 2017/03/20 15:24:04 192.168.1.230:49799 POST /pair-verify
DEBUG 2017/03/20 15:24:04 ->     Message: e98a5c509ab97dc2fb6216af671e308d2e8ad05e9e9c7e0a1a8d99e76b04c18d50aac91b4dfe6e6453bc26a2485c550d0fbfe4b6609151072e8d0526cdc13d66c72efe6eb50b81a9db85d9c5e2ab773878a7a1a2f418f8da6321b1fc46d8d4afb91324b432bd19ba
DEBUG 2017/03/20 15:24:04 ->     MAC: 03f8f0163e58003f9cd30d06eeb153e8
DEBUG 2017/03/20 15:24:04     client: EB0D218D-17C2-4B5E-B5B3-453315FDE6C0
DEBUG 2017/03/20 15:24:04  signature: 98450fee7c45524ae810bb2ff4e2abf5145554f142a31732e09d66900f02f9830df74da46f3aec36302038c45f957b00c4deb828fcf4ec2e911fdb79b3e11d00
DEBUG 2017/03/20 15:24:04 signature is valid
DEBUG 2017/03/20 15:24:04 ->     A: fb41d3b59049d01a003a3fcbf9d54e0cd788127b2c0d5c9587ccb021bfa3a171
DEBUG 2017/03/20 15:24:04 Setup secure session
DEBUG 2017/03/20 15:24:04 192.168.1.230:49799 GET /accessories
DEBUG 2017/03/20 15:24:04 {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"BRLeft","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":7,"type":"43","characteristics":[{"iid":8,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":9,"type":"8","perms":["pr","pw","ev"],"value":51,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":10,"type":"2F","perms":["pr","pw","ev"],"value":100,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2017/03/20 15:24:04        K: c3f64e67f121d4cd04a87d7afdc89b23178b231b5fdf312c01efc45204de9b02
DEBUG 2017/03/20 15:24:04        B: 414d9d4235ee5e6c5856b54612174665f4db6181fde4bb1fb6684fa66ab37542
DEBUG 2017/03/20 15:24:04        S: 542d540b0af1c870e84b408f6e57daca590f9b15a9791c79edc03c9310ac5573
DEBUG 2017/03/20 15:24:04   Shared: 42e2b3c111dc82ae5467a73fe0e1034bbe6f4b853e8dcd9c7ab9a86825c92750
DEBUG 2017/03/20 15:24:04 <-     B: 414d9d4235ee5e6c5856b54612174665f4db6181fde4bb1fb6684fa66ab37542
DEBUG 2017/03/20 15:24:04 192.168.1.232:49583 POST /pair-verify
DEBUG 2017/03/20 15:24:04 ->     Message: 146fe74c7f87e4c35fa2e6f8707001cdaf771039a7d2ff35bd970abee7d0e50d44cb59c3180059e09e0f7859204ab5e66271048a45cea25f30363e6b8467e0f2ca03663b938a1b6fe5580d44595d338741fca187f1fab0f7ae057fa41c5fdb118c7aa00d44232942
DEBUG 2017/03/20 15:24:04 ->     MAC: ba7f8d0e401dea4b5b4e417910bd8a8e
DEBUG 2017/03/20 15:24:04     client: EB0D218D-17C2-4B5E-B5B3-453315FDE6C0
DEBUG 2017/03/20 15:24:04  signature: 8602f57978e41d33e29210ef0cfa95cbc814ddeca52925a4892b4e55083afdf4695fe90983dc55cb3de69fd528b104a24c41735ac38fdd3a4110cc654dc43204
DEBUG 2017/03/20 15:24:04 signature is valid
DEBUG 2017/03/20 15:24:04 Setup secure session
DEBUG 2017/03/20 15:24:04 192.168.1.232:49583 GET /accessories
DEBUG 2017/03/20 15:24:04 {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"BRLeft","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":7,"type":"43","characteristics":[{"iid":8,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":9,"type":"8","perms":["pr","pw","ev"],"value":51,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":10,"type":"2F","perms":["pr","pw","ev"],"value":100,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2017/03/20 15:24:51 192.168.1.216:62871 POST /pair-verify
DEBUG 2017/03/20 15:24:51 Create new pair verify controller
DEBUG 2017/03/20 15:24:51 ->     A: 69bc25a53743e8daf2f9eb9b63432d2f77e457deeee8b45a0f74bcad84dc6418
DEBUG 2017/03/20 15:24:51        K: 32f740158983a535e9b48634bfe379c2fbac8266c231d01f8dee982979360dce
DEBUG 2017/03/20 15:24:51        B: 9f68b673667e9cfdf496c365db2e1a9dbc1fae381c626c9332a33d5d0153dd30
DEBUG 2017/03/20 15:24:51        S: e9f4a6526bba3ac55796fca170342c062e9764ca2887d321801748c360955c05
DEBUG 2017/03/20 15:24:51   Shared: 234acd7661fa5f72ab21f7539d8f2664c5c4639a8c69b353200f4c5456b16d63
DEBUG 2017/03/20 15:24:51 <-     B: 9f68b673667e9cfdf496c365db2e1a9dbc1fae381c626c9332a33d5d0153dd30
DEBUG 2017/03/20 15:24:51 192.168.1.216:62872 POST /pair-verify
DEBUG 2017/03/20 15:24:51 Create new pair verify controller
DEBUG 2017/03/20 15:24:51 ->     A: 1a6618b99c734aa26fc8be8858926a34701749a9e090dc25c5e2597fbb5a2c40
DEBUG 2017/03/20 15:24:51        K: 18a8162ce6d21ef34ac16eca327ecc8eb9ce952f394e650ba2f8c906ecc319db
DEBUG 2017/03/20 15:24:51        B: fb51ca7dc04ca3fe981968f357934813df08370a6a0a144d86f75b3f60e11753
DEBUG 2017/03/20 15:24:51        S: 3f0a1fbb01d2f2f43f5951345766eb48a9b7563b6b503c7178eee7cae222e05a
DEBUG 2017/03/20 15:24:51   Shared: 6c26165004167fd73102ef3f7052f7e0c226a5d5ae1d3344bb61879eac1a511b
DEBUG 2017/03/20 15:24:51 <-     B: fb51ca7dc04ca3fe981968f357934813df08370a6a0a144d86f75b3f60e11753
DEBUG 2017/03/20 15:24:51 192.168.1.216:62871 POST /pair-verify
DEBUG 2017/03/20 15:24:51 ->     Message: f49de9b32322317e7aaa650025d9f2954ec63e00a052068c861823d8d9075f130a7d9e985aec4e4c2b10c58569fe9c10df5a0c9ff9adc086f95925f924f64c337b52698d4a90888c2335ea6edc9fa93afaad51e465c9e3507ce8bddb16885d543733f2054e1a8e48
DEBUG 2017/03/20 15:24:51 ->     MAC: 4d64d075ec532f2c4f64eb4bb753444a
DEBUG 2017/03/20 15:24:51     client: EB0D218D-17C2-4B5E-B5B3-453315FDE6C0
DEBUG 2017/03/20 15:24:51  signature: 807001cd3a4f31627ff04f4a1c972c760af2737e8a37b2adce1bc25e4fbb7ecf42415abe16989e279eb8e8abb57c7734812ee6fbaefbc921fd9c5ac8758bf909
DEBUG 2017/03/20 15:24:51 signature is valid
DEBUG 2017/03/20 15:24:51 Setup secure session
DEBUG 2017/03/20 15:24:51 192.168.1.216:62871 GET /accessories
DEBUG 2017/03/20 15:24:51 {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"BRLeft","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":7,"type":"43","characteristics":[{"iid":8,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":9,"type":"8","perms":["pr","pw","ev"],"value":51,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":10,"type":"2F","perms":["pr","pw","ev"],"value":100,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2017/03/20 15:24:51 192.168.1.216:62872 POST /pair-verify
DEBUG 2017/03/20 15:24:51 ->     Message: 693c6d05e404ebf6eb44548e7dcd31326397c404416801e2e4b9464f20665d9ccd12e9b785bffcc4404ccdc81ac22d32a51431b96c942f544dd29c8c77a472517625e99354464e0553cae8af762dfe4f3f55f75ad48d89eea14f5b7dfa9cebdb7dffc3a08d09388f
DEBUG 2017/03/20 15:24:51 ->     MAC: 92fa16705c42c403f733f13ecc07eec2
DEBUG 2017/03/20 15:24:51     client: EB0D218D-17C2-4B5E-B5B3-453315FDE6C0
DEBUG 2017/03/20 15:24:51  signature: 5a999a5225ffeffc5a0ae6542b732a2cefb8be73ce35d2d130df3661013f0858e2d97ebc31fca423928dd31d18a12043bc3609563e9388e8631f6211797ce90c
DEBUG 2017/03/20 15:24:51 signature is valid
DEBUG 2017/03/20 15:24:51 Setup secure session
DEBUG 2017/03/20 15:24:51 192.168.1.216:62872 GET /accessories
DEBUG 2017/03/20 15:24:51 {"accessories":[{"aid":1,"services":[{"iid":1,"type":"3E","characteristics":[{"iid":2,"type":"14","perms":["pw"],"format":"bool"},{"iid":3,"type":"20","perms":["pr"],"value":"LIFX","format":"string"},{"iid":4,"type":"21","perms":["pr"],"value":"undefined","format":"string"},{"iid":5,"type":"23","perms":["pr"],"value":"BRRight","format":"string"},{"iid":6,"type":"30","perms":["pr"],"value":"undefined","format":"string"}]},{"iid":7,"type":"43","characteristics":[{"iid":8,"type":"25","perms":["pr","pw","ev"],"value":false,"format":"bool"},{"iid":9,"type":"8","perms":["pr","pw","ev"],"value":51,"format":"int32","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":10,"type":"2F","perms":["pr","pw","ev"],"value":100,"format":"float","unit":"percentage","maxValue":100,"minValue":0,"minStep":1},{"iid":11,"type":"13","perms":["pr","pw","ev"],"value":0,"format":"float","unit":"arcdegrees","maxValue":360,"minValue":0,"minStep":1}]}]}]}
DEBUG 2017/03/20 15:34:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:34:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:34:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:34:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:34:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:34:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:44:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:44:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:44:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:44:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:44:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:44:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:54:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:54:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:54:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:54:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:54:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 15:54:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:04:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:04:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:04:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:04:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:04:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:04:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:14:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:14:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:14:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:14:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:14:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:14:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:24:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:24:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:24:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:24:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:24:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:24:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:34:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:34:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:34:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:34:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:34:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:34:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:44:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:44:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:44:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:44:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:44:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:44:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:54:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:54:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:54:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:54:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:54:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 16:54:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:04:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:04:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:04:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:04:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:04:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:04:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:14:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:14:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:14:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:14:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:14:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:14:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:24:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:24:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:24:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:24:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:24:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:24:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:34:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:34:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:34:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:34:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:34:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:34:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:44:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:44:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:44:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:44:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:44:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:44:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:54:04 Keep alive 192.168.1.230:49798 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:54:04 Keep alive 192.168.1.232:49582 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:54:04 Keep alive 192.168.1.216:62872 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:54:04 Keep alive 192.168.1.230:49799 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:54:04 Keep alive 192.168.1.232:49583 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

DEBUG 2017/03/20 17:54:04 Keep alive 192.168.1.216:62871 <- EVENT/1.0 200 OK
Content-Type: application/hap+json
Content-Length: 0

signal: killed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.