mirror of
https://github.com/Xevion/go-ha.git
synced 2025-12-06 01:15:10 -06:00
Merge pull request #31 from saml-dev/adaptive-lighting
add adaptive lighting service
This commit is contained in:
26
internal/services/adaptive_lighting.go
Normal file
26
internal/services/adaptive_lighting.go
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package services
|
||||||
|
|
||||||
|
import (
|
||||||
|
ws "saml.dev/gome-assistant/internal/websocket"
|
||||||
|
)
|
||||||
|
|
||||||
|
/* Structs */
|
||||||
|
|
||||||
|
type AdaptiveLighting struct {
|
||||||
|
conn *ws.WebsocketWriter
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Public API */
|
||||||
|
|
||||||
|
// Set manual control for an adaptive lighting entity.
|
||||||
|
func (al AdaptiveLighting) SetManualControl(entityId string, enabled bool) error {
|
||||||
|
req := NewBaseServiceRequest("")
|
||||||
|
req.Domain = "adaptive_lighting"
|
||||||
|
req.Service = "set_manual_control"
|
||||||
|
req.ServiceData = map[string]any{
|
||||||
|
"entity_id": entityId,
|
||||||
|
"manual_control": enabled,
|
||||||
|
}
|
||||||
|
|
||||||
|
return al.conn.WriteMessage(req)
|
||||||
|
}
|
||||||
@@ -6,7 +6,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func BuildService[
|
func BuildService[
|
||||||
T AlarmControlPanel |
|
T AdaptiveLighting |
|
||||||
|
AlarmControlPanel |
|
||||||
Climate |
|
Climate |
|
||||||
Cover |
|
Cover |
|
||||||
Light |
|
Light |
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Service struct {
|
type Service struct {
|
||||||
|
AdaptiveLighting *services.AdaptiveLighting
|
||||||
AlarmControlPanel *services.AlarmControlPanel
|
AlarmControlPanel *services.AlarmControlPanel
|
||||||
Climate *services.Climate
|
Climate *services.Climate
|
||||||
Cover *services.Cover
|
Cover *services.Cover
|
||||||
@@ -31,6 +32,7 @@ type Service struct {
|
|||||||
|
|
||||||
func newService(conn *ws.WebsocketWriter) *Service {
|
func newService(conn *ws.WebsocketWriter) *Service {
|
||||||
return &Service{
|
return &Service{
|
||||||
|
AdaptiveLighting: services.BuildService[services.AdaptiveLighting](conn),
|
||||||
AlarmControlPanel: services.BuildService[services.AlarmControlPanel](conn),
|
AlarmControlPanel: services.BuildService[services.AlarmControlPanel](conn),
|
||||||
Climate: services.BuildService[services.Climate](conn),
|
Climate: services.BuildService[services.Climate](conn),
|
||||||
Cover: services.BuildService[services.Cover](conn),
|
Cover: services.BuildService[services.Cover](conn),
|
||||||
|
|||||||
Reference in New Issue
Block a user