Advertisement
Guest User

Untitled

a guest
Nov 14th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.94 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "bytes"
  5.     "fmt"
  6.     "math/rand"
  7.     "net/http"
  8.     "sync"
  9.     "time"
  10. )
  11.  
  12. func setLight(lightID int) {
  13.     url := fmt.Sprintf("http://192.168.1.23/api/fqaj6KtOHPSNpPzTzFy4g5rce98CIf2uAFlXbViH/lights/%d/state", lightID)
  14.  
  15.     for {
  16.         rand.Seed(time.Now().UnixNano())
  17.         hue := rand.Intn(65535)
  18.         fmt.Printf("Light %d - hue: %d\n", lightID, hue)
  19.         str := fmt.Sprintf(`{"on":true, "sat":254, "bri":100,"hue":%d}`, hue)
  20.         jsonStr := []byte(str)
  21.         req, err := http.NewRequest("PUT", url, bytes.NewBuffer(jsonStr))
  22.  
  23.         client := &http.Client{}
  24.         resp, err := client.Do(req)
  25.         if err != nil {
  26.             panic(err)
  27.         }
  28.  
  29.         defer resp.Body.Close()
  30.         time.Sleep(time.Millisecond * 600)
  31.     }
  32. }
  33.  
  34. func main() {
  35.  
  36.     lights := [...]int{1, 3, 6}
  37.  
  38.     var wg sync.WaitGroup
  39.     wg.Add(len(lights))
  40.  
  41.     for _, i := range lights {
  42.         go func(lightID int) {
  43.             setLight(lightID)
  44.             wg.Done()
  45.         }(i)
  46.         time.Sleep(time.Millisecond * 200)
  47.     }
  48.     wg.Wait()
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement