rename
This commit is contained in:
parent
c50304bbcd
commit
45e0362a4b
2 changed files with 98 additions and 98 deletions
98
cmd/huectl/main.go
Normal file
98
cmd/huectl/main.go
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strconv"
|
||||
|
||||
"git.barakmich.com/barak/hue/discovery"
|
||||
"github.com/amimof/huego"
|
||||
"github.com/spf13/pflag"
|
||||
)
|
||||
|
||||
var (
|
||||
group = pflag.String("group", "", "Select a light group")
|
||||
light = pflag.String("light", "", "Select an individual light")
|
||||
listAllScenes = pflag.Bool("list-all-scenes", false, "List all scenes")
|
||||
listScenes = pflag.Bool("list-scenes", false, "List all scenes")
|
||||
scene = pflag.String("scene", "", "Set a scene")
|
||||
)
|
||||
|
||||
func main() {
|
||||
pflag.Parse()
|
||||
bridge, err := discovery.DiscoverAndConnectFromConfig("barak-hue-test")
|
||||
if err != nil {
|
||||
log.Fatalln("Couldn't connect to hue bridge:", err)
|
||||
}
|
||||
if *listAllScenes {
|
||||
scenes, _ := bridge.GetScenes()
|
||||
fmt.Println(scenes[0].Group)
|
||||
return
|
||||
}
|
||||
if *group != "" {
|
||||
err := groupMain(bridge)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
if *light != "" {
|
||||
err := lightMain(bridge)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
} else {
|
||||
return
|
||||
}
|
||||
}
|
||||
log.Fatalln("Need to specify at least one of --group or --light")
|
||||
}
|
||||
|
||||
func groupMain(bridge *huego.Bridge) error {
|
||||
groups, err := bridge.GetGroups()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var g huego.Group
|
||||
found := false
|
||||
for _, x := range groups {
|
||||
if x.Name == *group {
|
||||
found = true
|
||||
g = x
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
return fmt.Errorf("Couldn't find group named \"%s\"", *group)
|
||||
}
|
||||
switch {
|
||||
case *listScenes:
|
||||
scenes, err := bridge.GetScenes()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, s := range scenes {
|
||||
if s.Group == strconv.Itoa(g.ID) {
|
||||
fmt.Println(s.Name)
|
||||
}
|
||||
}
|
||||
case *scene != "":
|
||||
scenes, err := bridge.GetScenes()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, s := range scenes {
|
||||
if s.Group == strconv.Itoa(g.ID) {
|
||||
if s.Name == *scene {
|
||||
return g.Scene(s.ID)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func lightMain(bridge *huego.Bridge) error {
|
||||
return nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue