diff --git a/xaal.go b/xaal.go index 150d79ef2f02aff42bb85f9f09407afa926e2ddb..e0d34d4713096c726e750a838a73a03fd17a1490 100644 --- a/xaal.go +++ b/xaal.go @@ -3,7 +3,6 @@ package main import ( "fmt" "log/slog" - "math" "github.com/lucasb-eyer/go-colorful" "gitlab.imt-atlantique.fr/xaal/code/go/core/schemas" @@ -125,6 +124,7 @@ func (dev *Hygrometer) update(payload map[string]interface{}) { // ============================================================================= func NewLinkQuality(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInterface { dev := &LinkQuality{XAALDevice{schemas.NewLinkquality(addr), zDev, exp}} + dev.GetAttribute("level").Value = 0 // override type to int dev.setup() dev.RemoveAttribute("devices") dev.UnsupportedAttributes = []string{"devices"} @@ -132,9 +132,9 @@ func NewLinkQuality(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInte } func (dev *LinkQuality) update(payload map[string]interface{}) { - value, exists := payload[dev.Expose.Name].(float64) - if exists { - value = math.Round(value / 255 * 100) + value, err := convertToInt(payload[dev.Expose.Name]) + if err == nil { + value = value * 100 / 255 dev.GetAttribute("level").SetValue(value) } }