mirror of
https://github.com/Xevion/go-ha.git
synced 2025-12-05 23:15:07 -06:00
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[
|
||||
T AlarmControlPanel |
|
||||
T AdaptiveLighting |
|
||||
AlarmControlPanel |
|
||||
Climate |
|
||||
Cover |
|
||||
Light |
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
)
|
||||
|
||||
type Service struct {
|
||||
AdaptiveLighting *services.AdaptiveLighting
|
||||
AlarmControlPanel *services.AlarmControlPanel
|
||||
Climate *services.Climate
|
||||
Cover *services.Cover
|
||||
@@ -31,6 +32,7 @@ type Service struct {
|
||||
|
||||
func newService(conn *ws.WebsocketWriter) *Service {
|
||||
return &Service{
|
||||
AdaptiveLighting: services.BuildService[services.AdaptiveLighting](conn),
|
||||
AlarmControlPanel: services.BuildService[services.AlarmControlPanel](conn),
|
||||
Climate: services.BuildService[services.Climate](conn),
|
||||
Cover: services.BuildService[services.Cover](conn),
|
||||
|
||||
Reference in New Issue
Block a user