Compare commits
2 Commits
1c99d42224
...
becc179184
Author | SHA1 | Date | |
---|---|---|---|
becc179184 | |||
37d3179662 |
17
client.go
17
client.go
@ -10,6 +10,23 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type (
|
||||||
|
Client struct {
|
||||||
|
accessToken string
|
||||||
|
Client *http.Client
|
||||||
|
}
|
||||||
|
|
||||||
|
Results struct {
|
||||||
|
Results []Result `json:results`
|
||||||
|
}
|
||||||
|
|
||||||
|
Result struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
Label string `json:"label"`
|
||||||
|
Status Status `json:"status"`
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
var errorMap = map[int]error{
|
var errorMap = map[int]error{
|
||||||
http.StatusNotFound: errors.New("Selector did not match any lights"),
|
http.StatusNotFound: errors.New("Selector did not match any lights"),
|
||||||
http.StatusUnauthorized: errors.New("Bad access token"),
|
http.StatusUnauthorized: errors.New("Bad access token"),
|
||||||
|
37
cmd/lifx.go
37
cmd/lifx.go
@ -4,23 +4,42 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"git.kill0.net/chill9/go-lifx"
|
"git.kill0.net/chill9/go-lifx"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
//"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
apiToken := os.Getenv("LIFX_API_TOKEN")
|
accessToken := os.Getenv("LIFX_ACCESS_TOKEN")
|
||||||
if apiToken == "" {
|
if accessToken == "" {
|
||||||
fmt.Println("LIFX_API_TOKEN is undefined")
|
fmt.Println("LIFX_ACCESS_TOKEN is undefined")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
s := &lifx.State{Power: "on", Color: "blue"}
|
color1 := lifx.RGBColor{R: 235, G: 191, B: 255}
|
||||||
c := lifx.NewSession(apiToken)
|
color2 := lifx.NewHSBKColor()
|
||||||
c.SetState("group:Office", s)
|
color2.H = 27
|
||||||
|
color2.S = 1
|
||||||
|
color2.B = 0.39
|
||||||
|
fmt.Println(color1.Hex())
|
||||||
|
fmt.Println(color1.ColorString())
|
||||||
|
fmt.Println(color2.ColorString())
|
||||||
|
s := lifx.State{Power: "on", Color: color2}
|
||||||
|
c := lifx.NewClient(accessToken)
|
||||||
|
selector := "group:Office"
|
||||||
|
r, err := c.FastSetState(selector, s)
|
||||||
|
/*
|
||||||
time.Sleep(10 * time.Second)
|
time.Sleep(10 * time.Second)
|
||||||
s.Color = "white"
|
s.Color = "white"
|
||||||
res, _ := c.SetState("group:Office", s)
|
res, _ := c.SetState(selector, s)
|
||||||
fmt.Println(res)
|
fmt.Println(res)
|
||||||
//c.SetState("all", &lifx.State{Power: "on", Color: "green"})
|
//c.SetState("all", &lifx.State{Power: "on", Color: "green"})
|
||||||
time.Sleep(10)
|
time.Sleep(10 * time.Second)
|
||||||
|
c.FastPowerOff(selector)
|
||||||
|
time.Sleep(10 * time.Second)
|
||||||
|
c.FastPowerOn(selector)
|
||||||
//c.PowerOff("all")
|
//c.PowerOff("all")
|
||||||
|
*/
|
||||||
|
fmt.Println(err)
|
||||||
|
fmt.Println(r)
|
||||||
|
r, err = c.Toggle(selector, 10.0)
|
||||||
|
fmt.Println(err)
|
||||||
|
fmt.Println(r)
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
Status string
|
||||||
|
|
||||||
State struct {
|
State struct {
|
||||||
Power string `json:"power,omitempty"`
|
Power string `json:"power,omitempty"`
|
||||||
Color Color `json:"color,omitempty"`
|
Color Color `json:"color,omitempty"`
|
||||||
|
18
structs.go
18
structs.go
@ -2,7 +2,6 @@ package lifx
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -13,23 +12,6 @@ type (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
Status string
|
|
||||||
|
|
||||||
Client struct {
|
|
||||||
accessToken string
|
|
||||||
Client *http.Client
|
|
||||||
}
|
|
||||||
|
|
||||||
Results struct {
|
|
||||||
Results []Result `json:results`
|
|
||||||
}
|
|
||||||
|
|
||||||
Result struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
Label string `json:"label"`
|
|
||||||
Status Status `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
RGBColor struct {
|
RGBColor struct {
|
||||||
R, G, B uint8
|
R, G, B uint8
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user