go-hue-interface/state.go
2019-02-15 23:36:31 +01:00

36 lines
740 B
Go

package hue
import "encoding/json"
// -------------------------------------------------------------
// ~ Interfaces & Types
// -------------------------------------------------------------
// BridgeState provides all data for a bridge
type BridgeState struct {
Lights map[string]*Light `json:"lights"`
}
func (bs *BridgeState) String() string {
str := ""
for k, l := range bs.Lights {
str += k + ": " + l.String()
}
return str
}
// GetState returns the current hue state
func (b *Bridge) GetState() (*BridgeState, error) {
state := &BridgeState{}
res, err := b.getFromBridge("")
// Unmarshal data
errDecode := json.NewDecoder(res.Body).Decode(state)
if errDecode != nil {
return nil, errDecode
}
return state, err
}