ha-rgb-screen/cmd/main.go

47 lines
889 B
Go

package main
import (
"log"
"os"
"time"
"gitnet.fr/deblan/ha-rgb-screen/internal/color"
"gitnet.fr/deblan/ha-rgb-screen/internal/config"
"gitnet.fr/deblan/ha-rgb-screen/internal/ha"
"gitnet.fr/deblan/ha-rgb-screen/internal/screen"
)
func main() {
params := config.GetConfig()
if !params.IsValid() {
params.Usage()
os.Exit(1)
}
s := screen.NewScreen(params)
client := ha.NewClient(params)
var lastValue color.RGB
for {
capture, err := s.Capture()
if err == nil {
newValue := color.GetRgbAverage(capture)
delta := color.Delta(newValue, lastValue)
if delta > params.Delta {
lastValue = newValue
if err := client.Update(newValue); err != nil && !params.Debug {
log.Printf("Error: %s\n", err.Error())
}
}
} else {
log.Fatalf("Fatal error: %s", err.Error())
}
time.Sleep(time.Duration(params.Delay) * time.Millisecond)
}
}