From 8fe6bc0cff625424039837de688f93842fbf5f63 Mon Sep 17 00:00:00 2001 From: Xevion Date: Fri, 1 Aug 2025 20:44:38 -0500 Subject: [PATCH] chore: reformat, normalize imports --- README.md | 2 +- cmd/generate/main.go | 6 ++--- event_listener.go | 4 +-- example/example.go | 23 ++++++++--------- example/example_live_test.go | 14 +++++----- example/go.mod | 7 +++-- example/go.sum | 33 +++++++++++++++++++++--- internal/services/adaptive_lighting.go | 4 --- internal/services/alarm_control_panel.go | 8 ++---- internal/services/climate.go | 4 --- internal/services/cover.go | 4 --- internal/services/event.go | 2 -- internal/services/input_boolean.go | 8 ++---- internal/services/input_button.go | 8 ++---- internal/services/input_datetime.go | 8 ++---- internal/services/input_number.go | 8 ++---- internal/services/input_text.go | 4 --- internal/services/light.go | 8 ++---- internal/services/lock.go | 8 ++---- internal/services/media_player.go | 8 ++---- internal/services/notify.go | 4 +-- internal/services/number.go | 4 +-- internal/services/scene.go | 8 ++---- internal/services/script.go | 8 ++---- internal/services/services.go | 4 +-- internal/services/switch.go | 8 ++---- internal/services/timer.go | 8 ++---- internal/services/tts.go | 6 +---- internal/services/vacuum.go | 8 ++---- internal/services/zwavejs.go | 8 ++---- state.go | 2 +- 31 files changed, 94 insertions(+), 145 deletions(-) diff --git a/README.md b/README.md index b5a7328..803415b 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ The general flow is 3. Start app ```go -import ga "github.com/Xevion/go-ha" +import ha "github.com/Xevion/go-ha" // replace with IP and port of your Home Assistant installation app, err := ga.NewApp(ga.NewAppRequest{ diff --git a/cmd/generate/main.go b/cmd/generate/main.go index cb2b7b3..5ae00d5 100644 --- a/cmd/generate/main.go +++ b/cmd/generate/main.go @@ -9,7 +9,7 @@ import ( "strings" "text/template" - ga "github.com/Xevion/go-ha" + ha "github.com/Xevion/go-ha" "github.com/Xevion/go-ha/types" "gopkg.in/yaml.v3" ) @@ -68,7 +68,7 @@ func toCamelCase(s string) string { } // validateHomeZone verifies that the home zone entity exists and is valid -func validateHomeZone(state ga.State, entityID string) error { +func validateHomeZone(state ha.State, entityID string) error { entity, err := state.Get(entityID) if err != nil { return fmt.Errorf("home zone entity '%s' not found: %w", entityID, err) @@ -99,7 +99,7 @@ func generate(config Config) error { config.HomeZoneEntityId = "zone.home" } - app, err := ga.NewApp(types.NewAppRequest{ + app, err := ha.NewApp(types.NewAppRequest{ URL: config.URL, HAAuthToken: config.HAAuthToken, HomeZoneEntityId: config.HomeZoneEntityId, diff --git a/event_listener.go b/event_listener.go index 5343940..416a9c4 100644 --- a/event_listener.go +++ b/event_listener.go @@ -8,7 +8,7 @@ import ( "github.com/golang-module/carbon" "github.com/Xevion/go-ha/internal" - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" "github.com/Xevion/go-ha/types" ) @@ -141,7 +141,7 @@ type BaseEventMsg struct { } /* Functions */ -func callEventListeners(app *App, msg ws.ChannelMessage) { +func callEventListeners(app *App, msg connect.ChannelMessage) { baseEventMsg := BaseEventMsg{} _ = json.Unmarshal(msg.Raw, &baseEventMsg) listeners, ok := app.eventListeners[baseEventMsg.Event.EventType] diff --git a/example/example.go b/example/example.go index 48a78fb..73a79de 100644 --- a/example/example.go +++ b/example/example.go @@ -7,14 +7,13 @@ import ( "time" // "example/entities" // Optional import generated entities - - ga "github.com/Xevion/go-ha" + ha "github.com/Xevion/go-ha" ) //go:generate go run github.com/Xevion/go-ha/cmd/generate func main() { - app, err := ga.NewApp(ga.NewAppRequest{ + app, err := ha.NewApp(ha.NewAppRequest{ URL: "http://192.168.86.67:8123", // Replace with your Home Assistant URL HAAuthToken: os.Getenv("HA_AUTH_TOKEN"), HomeZoneEntityId: "zone.home", @@ -32,25 +31,25 @@ func main() { slog.Info("Application shutdown complete") }() - pantryDoor := ga. + pantryDoor := ha. NewEntityListener(). EntityIds(entities.BinarySensor.PantryDoor). // Use generated entity constant Call(pantryLights). Build() - _11pmSched := ga. + _11pmSched := ha. NewDailySchedule(). Call(lightsOut). At("23:00"). Build() - _30minsBeforeSunrise := ga. + _30minsBeforeSunrise := ha. NewDailySchedule(). Call(sunriseSched). Sunrise("-30m"). Build() - zwaveEventListener := ga. + zwaveEventListener := ha. NewEventListener(). EventTypes("zwave_js_value_notification"). Call(onEvent). @@ -63,7 +62,7 @@ func main() { app.Start() } -func pantryLights(service *ga.Service, state ga.State, sensor ga.EntityData) { +func pantryLights(service *ha.Service, state ha.State, sensor ha.EntityData) { l := "light.pantry" // l := entities.Light.Pantry // Or use generated entity constant if sensor.ToState == "on" { @@ -73,18 +72,18 @@ func pantryLights(service *ga.Service, state ga.State, sensor ga.EntityData) { } } -func onEvent(service *ga.Service, state ga.State, data ga.EventData) { +func onEvent(service *ha.Service, state ha.State, data ha.EventData) { // Since the structure of the event changes depending // on the event type, you can Unmarshal the raw json // into a Go type. If a type for your event doesn't // exist, you can write it yourself! PR's welcome to // the eventTypes.go file :) - ev := ga.EventZWaveJSValueNotification{} + ev := ha.EventZWaveJSValueNotification{} json.Unmarshal(data.RawEventJSON, &ev) slog.Info("On event invoked", "event", ev) } -func lightsOut(service *ga.Service, state ga.State) { +func lightsOut(service *ha.Service, state ha.State) { // always turn off outside lights service.Light.TurnOff(entities.Light.OutsideLights) s, err := state.Get(entities.BinarySensor.LivingRoomMotion) @@ -99,7 +98,7 @@ func lightsOut(service *ga.Service, state ga.State) { } } -func sunriseSched(service *ga.Service, state ga.State) { +func sunriseSched(service *ha.Service, state ha.State) { service.Light.TurnOn(entities.Light.LivingRoomLamps) service.Light.TurnOff(entities.Light.ChristmasLights) } diff --git a/example/example_live_test.go b/example/example_live_test.go index eb24097..932131f 100644 --- a/example/example_live_test.go +++ b/example/example_live_test.go @@ -11,13 +11,13 @@ import ( "github.com/stretchr/testify/suite" "gopkg.in/yaml.v3" - ga "github.com/Xevion/go-ha" + ha "github.com/Xevion/go-ha" ) type ( MySuite struct { suite.Suite - app *ga.App + app *ha.App config *Config suiteCtx map[string]any } @@ -62,7 +62,7 @@ func (s *MySuite) SetupSuite() { slog.Error("Error unmarshalling config file", "error", err) } - s.app, err = ga.NewApp(ga.NewAppRequest{ + s.app, err = ha.NewApp(ha.NewAppRequest{ HAAuthToken: s.config.Hass.HAAuthToken, IpAddress: s.config.Hass.IpAddress, HomeZoneEntityId: s.config.Hass.HomeZoneEntityId, @@ -76,13 +76,13 @@ func (s *MySuite) SetupSuite() { entityId := s.config.Entities.LightEntityId if entityId != "" { s.suiteCtx["entityCallbackInvoked"] = false - etl := ga.NewEntityListener().EntityIds(entityId).Call(s.entityCallback).Build() + etl := ha.NewEntityListener().EntityIds(entityId).Call(s.entityCallback).Build() s.app.RegisterEntityListeners(etl) } s.suiteCtx["dailyScheduleCallbackInvoked"] = false runTime := time.Now().Add(1 * time.Minute).Format("15:04") - dailySchedule := ga.NewDailySchedule().Call(s.dailyScheduleCallback).At(runTime).Build() + dailySchedule := ha.NewDailySchedule().Call(s.dailyScheduleCallback).At(runTime).Build() s.app.RegisterSchedules(dailySchedule) // start GA app @@ -122,13 +122,13 @@ func (s *MySuite) TestSchedule() { } // Capture event after light entity state has changed -func (s *MySuite) entityCallback(se *ga.Service, st ga.State, e ga.EntityData) { +func (s *MySuite) entityCallback(se *ha.Service, st ha.State, e ha.EntityData) { slog.Info("Entity callback called.", "entity id", e.TriggerEntityId, "from state", e.FromState, "to state", e.ToState) s.suiteCtx["entityCallbackInvoked"] = true } // Capture planned daily schedule -func (s *MySuite) dailyScheduleCallback(se *ga.Service, st ga.State) { +func (s *MySuite) dailyScheduleCallback(se *ha.Service, st ha.State) { slog.Info("Daily schedule callback called.") s.suiteCtx["dailyScheduleCallbackInvoked"] = true } diff --git a/example/go.mod b/example/go.mod index 7c9b97e..cdf439a 100644 --- a/example/go.mod +++ b/example/go.mod @@ -3,13 +3,14 @@ module example go 1.23 require ( + github.com/Xevion/go-ha v0.7.0 github.com/golang-cz/devslog v0.0.8 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.10.0 gopkg.in/yaml.v3 v3.0.1 - github.com/Xevion/gome-assistant v0.2.0 ) require ( + github.com/Workiva/go-datastructures v1.1.5 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/gobuffalo/envy v1.10.2 // indirect github.com/gobuffalo/packd v1.0.2 // indirect @@ -21,4 +22,6 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect golang.org/x/mod v0.9.0 // indirect + golang.org/x/net v0.33.0 // indirect + resty.dev/v3 v3.0.0-beta.3 // indirect ) diff --git a/example/go.sum b/example/go.sum index c2a18f2..afd9d50 100644 --- a/example/go.sum +++ b/example/go.sum @@ -1,4 +1,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Workiva/go-datastructures v1.1.5 h1:5YfhQ4ry7bZc2Mc7R0YZyYwpf5c6t1cEFvdAhd6Mkf4= +github.com/Workiva/go-datastructures v1.1.5/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= +github.com/Xevion/go-ha v0.7.0 h1:jf+ZVSDaw0xjY0TcCA/TodWmAehtm47hDQI5z8XJMQE= +github.com/Xevion/go-ha v0.7.0/go.mod h1:TN+40o0znxEdvR7GQgm5YWMiCEJvsoFbnro2oW38RVU= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= @@ -44,6 +48,7 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/nathan-osman/go-sunrise v1.1.0 h1:ZqZmtmtzs8Os/DGQYi0YMHpuUqR/iRoJK+wDO0wTCw8= github.com/nathan-osman/go-sunrise v1.1.0/go.mod h1:RcWqhT+5ShCZDev79GuWLayetpJp78RSjSWxiDowmlM= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -66,28 +71,48 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tinylib/msgp v1.1.5/go.mod h1:eQsjooMTnV42mHu917E26IogZ2930nFyBQdofk10Udg= +github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= +golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -96,5 +121,5 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -github.com/Xevion/gome-assistant v0.2.0 h1:Clo5DrziTdsYydVUTQfroeBVmToMnNHoObr+k6HhbMY= -github.com/Xevion/gome-assistant v0.2.0/go.mod h1:jsZUtnxANCP0zB2B7iyy4j7sZohMGop8g+5EB2MER3o= +resty.dev/v3 v3.0.0-beta.3 h1:3kEwzEgCnnS6Ob4Emlk94t+I/gClyoah7SnNi67lt+E= +resty.dev/v3 v3.0.0-beta.3/go.mod h1:OgkqiPvTDtOuV4MGZuUDhwOpkY8enjOsjjMzeOHefy4= diff --git a/internal/services/adaptive_lighting.go b/internal/services/adaptive_lighting.go index c6b12ff..26ef97f 100644 --- a/internal/services/adaptive_lighting.go +++ b/internal/services/adaptive_lighting.go @@ -4,14 +4,10 @@ import ( "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type AdaptiveLighting struct { conn *connect.HAConnection } -/* Public API */ - // Set manual control for an adaptive lighting entity. func (al AdaptiveLighting) SetManualControl(entityId string, enabled bool) error { req := NewBaseServiceRequest("") diff --git a/internal/services/alarm_control_panel.go b/internal/services/alarm_control_panel.go index 6ace5da..dd5a1ff 100644 --- a/internal/services/alarm_control_panel.go +++ b/internal/services/alarm_control_panel.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type AlarmControlPanel struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // Send the alarm the command for arm away. // Takes an entityId and an optional // map that is translated into service_data. diff --git a/internal/services/climate.go b/internal/services/climate.go index 660e95b..e334832 100644 --- a/internal/services/climate.go +++ b/internal/services/climate.go @@ -5,14 +5,10 @@ import ( "github.com/Xevion/go-ha/types" ) -/* Structs */ - type Climate struct { conn *connect.HAConnection } -/* Public API */ - func (c Climate) SetFanMode(entityId string, fanMode string) error { req := NewBaseServiceRequest(entityId) req.Domain = "climate" diff --git a/internal/services/cover.go b/internal/services/cover.go index 2403730..1881401 100644 --- a/internal/services/cover.go +++ b/internal/services/cover.go @@ -4,14 +4,10 @@ import ( "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Cover struct { conn *connect.HAConnection } -/* Public API */ - // Close all or specified cover. Takes an entityId. func (c Cover) Close(entityId string) error { req := NewBaseServiceRequest(entityId) diff --git a/internal/services/event.go b/internal/services/event.go index 4eea53e..573b4aa 100644 --- a/internal/services/event.go +++ b/internal/services/event.go @@ -17,8 +17,6 @@ type FireEventRequest struct { EventData map[string]any `json:"event_data,omitempty"` } -/* Public API */ - // Fire an event. Takes an event type and an optional map that is sent // as `event_data`. func (e Event) Fire(eventType string, eventData ...map[string]any) error { diff --git a/internal/services/input_boolean.go b/internal/services/input_boolean.go index e2fe46b..b92a669 100644 --- a/internal/services/input_boolean.go +++ b/internal/services/input_boolean.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type InputBoolean struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - func (ib InputBoolean) TurnOn(entityId string) error { req := NewBaseServiceRequest(entityId) req.Domain = "input_boolean" diff --git a/internal/services/input_button.go b/internal/services/input_button.go index ee9683b..0756212 100644 --- a/internal/services/input_button.go +++ b/internal/services/input_button.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type InputButton struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - func (ib InputButton) Press(entityId string) error { req := NewBaseServiceRequest(entityId) req.Domain = "input_button" diff --git a/internal/services/input_datetime.go b/internal/services/input_datetime.go index c56745c..1ef565e 100644 --- a/internal/services/input_datetime.go +++ b/internal/services/input_datetime.go @@ -4,17 +4,13 @@ import ( "fmt" "time" - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type InputDatetime struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - func (ib InputDatetime) Set(entityId string, value time.Time) error { req := NewBaseServiceRequest(entityId) req.Domain = "input_datetime" diff --git a/internal/services/input_number.go b/internal/services/input_number.go index 8faabb7..9672a37 100644 --- a/internal/services/input_number.go +++ b/internal/services/input_number.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type InputNumber struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - func (ib InputNumber) Set(entityId string, value float32) error { req := NewBaseServiceRequest(entityId) req.Domain = "input_number" diff --git a/internal/services/input_text.go b/internal/services/input_text.go index 9dd659f..8563e16 100644 --- a/internal/services/input_text.go +++ b/internal/services/input_text.go @@ -4,14 +4,10 @@ import ( "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type InputText struct { conn *connect.HAConnection } -/* Public API */ - func (ib InputText) Set(entityId string, value string) error { req := NewBaseServiceRequest(entityId) req.Domain = "input_text" diff --git a/internal/services/light.go b/internal/services/light.go index e65f98a..919f8b1 100644 --- a/internal/services/light.go +++ b/internal/services/light.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Light struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // TurnOn a light entity. Takes an entityId and an optional // map that is translated into service_data. func (l Light) TurnOn(entityId string, serviceData ...map[string]any) error { diff --git a/internal/services/lock.go b/internal/services/lock.go index 56b4b9e..247794b 100644 --- a/internal/services/lock.go +++ b/internal/services/lock.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Lock struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // Lock a lock entity. Takes an entityId and an optional // map that is translated into service_data. func (l Lock) Lock(entityId string, serviceData ...map[string]any) error { diff --git a/internal/services/media_player.go b/internal/services/media_player.go index 74e6623..0a666e6 100644 --- a/internal/services/media_player.go +++ b/internal/services/media_player.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type MediaPlayer struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // Send the media player the command to clear players playlist. // Takes an entityId. func (mp MediaPlayer) ClearPlaylist(entityId string) error { diff --git a/internal/services/notify.go b/internal/services/notify.go index 003e7ff..8a42da9 100644 --- a/internal/services/notify.go +++ b/internal/services/notify.go @@ -1,12 +1,12 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" "github.com/Xevion/go-ha/types" ) type Notify struct { - conn *ws.HAConnection + conn *connect.HAConnection } // Notify sends a notification. Takes a types.NotifyRequest. diff --git a/internal/services/number.go b/internal/services/number.go index a8b3b29..b564e03 100644 --- a/internal/services/number.go +++ b/internal/services/number.go @@ -1,11 +1,11 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) type Number struct { - conn *ws.HAConnection + conn *connect.HAConnection } func (ib Number) SetValue(entityId string, value float32) error { diff --git a/internal/services/scene.go b/internal/services/scene.go index 9372709..ea4ac43 100644 --- a/internal/services/scene.go +++ b/internal/services/scene.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Scene struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // Apply a scene. Takes map that is translated into service_data. func (s Scene) Apply(serviceData ...map[string]any) error { req := NewBaseServiceRequest("") diff --git a/internal/services/script.go b/internal/services/script.go index 93868fc..85f2b7e 100644 --- a/internal/services/script.go +++ b/internal/services/script.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Script struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // Reload a script that was created in the HA UI. func (s Script) Reload(entityId string) error { req := NewBaseServiceRequest(entityId) diff --git a/internal/services/services.go b/internal/services/services.go index 006ead4..6a49c9d 100644 --- a/internal/services/services.go +++ b/internal/services/services.go @@ -2,7 +2,7 @@ package services import ( "github.com/Xevion/go-ha/internal" - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) func BuildService[ @@ -29,7 +29,7 @@ func BuildService[ Timer | Vacuum | ZWaveJS, -](conn *ws.HAConnection) *T { +](conn *connect.HAConnection) *T { return &T{conn: conn} } diff --git a/internal/services/switch.go b/internal/services/switch.go index 2f20c44..67335f1 100644 --- a/internal/services/switch.go +++ b/internal/services/switch.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Switch struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - func (s Switch) TurnOn(entityId string) error { req := NewBaseServiceRequest(entityId) req.Domain = "switch" diff --git a/internal/services/timer.go b/internal/services/timer.go index 407cd0a..224da21 100644 --- a/internal/services/timer.go +++ b/internal/services/timer.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Timer struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // See https://www.home-assistant.io/integrations/timer/#action-timerstart func (t Timer) Start(entityId string, duration string) error { req := NewBaseServiceRequest(entityId) diff --git a/internal/services/tts.go b/internal/services/tts.go index b7b8bb6..ca99071 100644 --- a/internal/services/tts.go +++ b/internal/services/tts.go @@ -1,17 +1,13 @@ package services import ( - connect "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type TTS struct { conn *connect.HAConnection } -/* Public API */ - // Remove all text-to-speech cache files and RAM cache. func (tts TTS) ClearCache() error { req := NewBaseServiceRequest("") diff --git a/internal/services/vacuum.go b/internal/services/vacuum.go index 1fe8fd8..8492eee 100644 --- a/internal/services/vacuum.go +++ b/internal/services/vacuum.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type Vacuum struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // Tell the vacuum cleaner to do a spot clean-up. // Takes an entityId. func (v Vacuum) CleanSpot(entityId string) error { diff --git a/internal/services/zwavejs.go b/internal/services/zwavejs.go index db4779f..f0e29d3 100644 --- a/internal/services/zwavejs.go +++ b/internal/services/zwavejs.go @@ -1,17 +1,13 @@ package services import ( - ws "github.com/Xevion/go-ha/internal/connect" + "github.com/Xevion/go-ha/internal/connect" ) -/* Structs */ - type ZWaveJS struct { - conn *ws.HAConnection + conn *connect.HAConnection } -/* Public API */ - // ZWaveJS bulk_set_partial_config_parameters service. func (zw ZWaveJS) BulkSetPartialConfigParam(entityId string, parameter int, value any) error { req := NewBaseServiceRequest(entityId) diff --git a/state.go b/state.go index dda556c..be2e6ee 100644 --- a/state.go +++ b/state.go @@ -8,7 +8,7 @@ import ( "github.com/golang-module/carbon" - internal "github.com/Xevion/go-ha/internal" + "github.com/Xevion/go-ha/internal" "github.com/Xevion/go-ha/types" )