4 Commits
Author SHA1 Message Date
gisle 204f372be2 fix mill
continuous-integration/drone/push Build is failing
2024-11-08 22:55:23 +01:00
gisle 083df1749b fix mill
continuous-integration/drone/push Build is failing
2024-11-08 21:34:35 +01:00
gisle 511ef97616 fix mill
continuous-integration/drone/push Build is failing
2024-11-08 21:26:28 +01:00
gisle 3d2b4e7bfe add mill driver 2024-11-08 21:08:24 +01:00
2 changed files with 11 additions and 8 deletions
+2
View File
@@ -7,6 +7,7 @@ import (
"git.aiterp.net/lucifer3/server/services/effectenforcer" "git.aiterp.net/lucifer3/server/services/effectenforcer"
"git.aiterp.net/lucifer3/server/services/httpapiv1" "git.aiterp.net/lucifer3/server/services/httpapiv1"
"git.aiterp.net/lucifer3/server/services/hue" "git.aiterp.net/lucifer3/server/services/hue"
"git.aiterp.net/lucifer3/server/services/mill"
"git.aiterp.net/lucifer3/server/services/mysqldb" "git.aiterp.net/lucifer3/server/services/mysqldb"
"git.aiterp.net/lucifer3/server/services/nanoleaf" "git.aiterp.net/lucifer3/server/services/nanoleaf"
"git.aiterp.net/lucifer3/server/services/script" "git.aiterp.net/lucifer3/server/services/script"
@@ -47,6 +48,7 @@ func main() {
bus.Join(nanoleaf.NewService()) bus.Join(nanoleaf.NewService())
bus.Join(hue.NewService()) bus.Join(hue.NewService())
bus.Join(tradfri.NewService()) bus.Join(tradfri.NewService())
bus.Join(mill.NewService())
bus.Join(uistate.NewService()) bus.Join(uistate.NewService())
bus.Join(script.NewService(resolver, variables)) bus.Join(script.NewService(resolver, variables))
bus.Join(database) bus.Join(database)
+9 -8
View File
@@ -20,7 +20,8 @@ type WifiBridge struct {
ID string ID string
IP string IP string
state *device.State state *device.State
desiredState device.State
mx sync.Mutex mx sync.Mutex
started bool started bool
@@ -36,6 +37,8 @@ func (w *WifiBridge) SetState(id string, state device.State) bool {
return false return false
} }
w.desiredState = state
return true return true
} }
@@ -78,7 +81,7 @@ func (w *WifiBridge) refresh() error {
return err return err
} }
if w.state != nil { if w.state == nil {
w.state = &device.State{ w.state = &device.State{
Temperature: gentools.Ptr(temp), Temperature: gentools.Ptr(temp),
} }
@@ -93,14 +96,12 @@ func (w *WifiBridge) refresh() error {
}) })
} }
w.state.Temperature = gentools.Ptr(*w.state.Temperature - math.Mod(*w.state.Temperature, 0.5)) if w.desiredState.Temperature != nil && math.Abs(temp-*w.desiredState.Temperature) >= 0.1 {
if math.Abs(temp-*w.state.Temperature) >= 0.1 {
if err := w.writeTemperature(); err != nil { if err := w.writeTemperature(); err != nil {
return err return err
} }
} }
return nil return nil
} }
@@ -112,7 +113,7 @@ func (w *WifiBridge) getTemperature() (float64, error) {
req, err := http.NewRequest( req, err := http.NewRequest(
"GET", "GET",
"http://%s/set-temperature", fmt.Sprintf("http://%s/set-temperature", w.IP),
bytes.NewReader(body), bytes.NewReader(body),
) )
if err != nil { if err != nil {
@@ -144,7 +145,7 @@ func (w *WifiBridge) writeTemperature() error {
req, err := http.NewRequest( req, err := http.NewRequest(
"POST", "POST",
"http://%s/set-temperature", fmt.Sprintf("http://%s/set-temperature", w.IP),
bytes.NewReader(body), bytes.NewReader(body),
) )
if err != nil { if err != nil {