3 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
+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 {