listeners working, sunrise/sunset working with string offset

This commit is contained in:
Sam Lewis
2022-10-16 22:23:46 -04:00
parent 8b888a2d89
commit 6ca78e88dd
10 changed files with 317 additions and 140 deletions

View File

@@ -1,20 +1,35 @@
package gomeassistant
import "github.com/saml-dev/gome-assistant/internal/http"
import (
"encoding/json"
"time"
"github.com/saml-dev/gome-assistant/internal/http"
)
// State is used to retrieve state from Home Assistant.
type State struct {
httpClient *http.HttpClient
}
type EntityState struct {
EntityID string `json:"entity_id"`
State string `json:"state"`
Attributes map[string]any `json:"attributes"`
LastChanged time.Time `json:"last_changed"`
LastUpdated time.Time `json:"last_updated"`
}
func NewState(c *http.HttpClient) *State {
return &State{httpClient: c}
}
func (s *State) Get(entityId string) (string, error) {
func (s *State) Get(entityId string) (EntityState, error) {
resp, err := s.httpClient.GetState(entityId)
if err != nil {
return "", err
return EntityState{}, err
}
return string(resp), nil
es := EntityState{}
json.Unmarshal(resp, &es)
return es, nil
}