mirror of
https://github.com/jpeletier/koolnova2mqtt.git
synced 2026-07-17 04:36:56 +00:00
update target temperature
This commit is contained in:
+13
-1
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
type Watcher interface {
|
||||
ReadRegister(address uint16) (value []byte)
|
||||
WriteRegister(address uint16, value uint16) error
|
||||
RegisterCallback(address uint16, callback func(address uint16))
|
||||
}
|
||||
|
||||
@@ -62,11 +63,14 @@ func (z *Zone) RegisterCallback(num int, f func()) {
|
||||
}
|
||||
|
||||
func (z *Zone) ReadRegister(num int) uint16 {
|
||||
|
||||
b := z.Watcher.ReadRegister(uint16(z.ZoneNumber*REG_PER_ZONE + num))
|
||||
return binary.BigEndian.Uint16(b)
|
||||
}
|
||||
|
||||
func (z *Zone) WriteRegister(num int, value uint16) error {
|
||||
return z.Watcher.WriteRegister(uint16(z.ZoneNumber*REG_PER_ZONE+num), value)
|
||||
}
|
||||
|
||||
func (z *Zone) IsOn() bool {
|
||||
r1 := z.ReadRegister(REG_ENABLED)
|
||||
return r1&0x1 != 0
|
||||
@@ -87,6 +91,10 @@ func (z *Zone) GetTargetTemperature() float32 {
|
||||
return reg2temp(r3)
|
||||
}
|
||||
|
||||
func (z *Zone) SetTargetTemperature(targetTemp float32) error {
|
||||
return z.WriteRegister(REG_TARGET_TEMP, temp2reg(targetTemp))
|
||||
}
|
||||
|
||||
func (z *Zone) GetFanMode() FanMode {
|
||||
r2 := z.ReadRegister(REG_MODE)
|
||||
return (FanMode)(r2&0x00F0) >> 4
|
||||
@@ -100,3 +108,7 @@ func (z *Zone) GetHvacMode() KnMode {
|
||||
func reg2temp(r uint16) float32 {
|
||||
return float32(0x00FF&r) / 2.0
|
||||
}
|
||||
|
||||
func temp2reg(t float32) uint16 {
|
||||
return uint16(t * 2)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user