Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
204f372be2 | ||
|
|
083df1749b | ||
|
|
511ef97616 | ||
|
|
3d2b4e7bfe | ||
|
|
c2f3d3c4d1 |
@@ -7,6 +7,7 @@ import (
|
||||
"git.aiterp.net/lucifer3/server/services/effectenforcer"
|
||||
"git.aiterp.net/lucifer3/server/services/httpapiv1"
|
||||
"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/nanoleaf"
|
||||
"git.aiterp.net/lucifer3/server/services/script"
|
||||
@@ -47,6 +48,7 @@ func main() {
|
||||
bus.Join(nanoleaf.NewService())
|
||||
bus.Join(hue.NewService())
|
||||
bus.Join(tradfri.NewService())
|
||||
bus.Join(mill.NewService())
|
||||
bus.Join(uistate.NewService())
|
||||
bus.Join(script.NewService(resolver, variables))
|
||||
bus.Join(database)
|
||||
|
||||
Binary file not shown.
@@ -348,7 +348,7 @@ func (b *Bridge) SetStates(patch map[string]device.State) {
|
||||
func (b *Bridge) Run(ctx context.Context, bus *lucifer3.EventBus) interface{} {
|
||||
hwEvents, err := b.RefreshAll()
|
||||
if err != nil {
|
||||
return errors.New("failed to connect to bridge")
|
||||
return fmt.Errorf("failed to connect to bridge: %s", err)
|
||||
}
|
||||
|
||||
bus.RunEvent(events.Log{
|
||||
|
||||
@@ -20,7 +20,8 @@ type WifiBridge struct {
|
||||
ID string
|
||||
IP string
|
||||
|
||||
state *device.State
|
||||
state *device.State
|
||||
desiredState device.State
|
||||
|
||||
mx sync.Mutex
|
||||
started bool
|
||||
@@ -36,6 +37,8 @@ func (w *WifiBridge) SetState(id string, state device.State) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
w.desiredState = state
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -78,7 +81,7 @@ func (w *WifiBridge) refresh() error {
|
||||
return err
|
||||
}
|
||||
|
||||
if w.state != nil {
|
||||
if w.state == nil {
|
||||
w.state = &device.State{
|
||||
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 math.Abs(temp-*w.state.Temperature) >= 0.1 {
|
||||
if w.desiredState.Temperature != nil && math.Abs(temp-*w.desiredState.Temperature) >= 0.1 {
|
||||
if err := w.writeTemperature(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -112,7 +113,7 @@ func (w *WifiBridge) getTemperature() (float64, error) {
|
||||
|
||||
req, err := http.NewRequest(
|
||||
"GET",
|
||||
"http://%s/set-temperature",
|
||||
fmt.Sprintf("http://%s/set-temperature", w.IP),
|
||||
bytes.NewReader(body),
|
||||
)
|
||||
if err != nil {
|
||||
@@ -144,7 +145,7 @@ func (w *WifiBridge) writeTemperature() error {
|
||||
|
||||
req, err := http.NewRequest(
|
||||
"POST",
|
||||
"http://%s/set-temperature",
|
||||
fmt.Sprintf("http://%s/set-temperature", w.IP),
|
||||
bytes.NewReader(body),
|
||||
)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user