From 77a4323532686c295d4150b61bfbe65d3cb1f36a Mon Sep 17 00:00:00 2001
From: jkerdreux-imt <jerome.kerdreux@imt-atlantique.fr>
Date: Mon, 18 Nov 2024 21:36:56 +0100
Subject: [PATCH] Cleanup Link

---
 xaal.go | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xaal.go b/xaal.go
index 150d79e..e0d34d4 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)
 	}
 }
-- 
GitLab