Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
204f372be2 | ||
|
|
083df1749b | ||
|
|
511ef97616 |
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user