diff --git a/xaal.go b/xaal.go index 9f3ade606f0889707ba623fd9653d89a2ba84833..86d432040ecd60764e954919bb54f9bbf4c2dce6 100644 --- a/xaal.go +++ b/xaal.go @@ -114,8 +114,8 @@ func NewThermometer(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInte } func (dev *Thermometer) update(payload map[string]interface{}) { - value, exists := payload[dev.Expose.Name].(float64) - if exists { + value, err := convertToFloat64(payload[dev.Expose.Name]) + if err == nil { dev.GetAttribute("temperature").SetValue(value) } } @@ -128,8 +128,8 @@ func NewHygrometer(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInter } func (dev *Hygrometer) update(payload map[string]interface{}) { - value, exists := payload[dev.Expose.Name].(float64) - if exists { + value, err := convertToFloat64(payload[dev.Expose.Name]) + if err == nil { dev.GetAttribute("humidity").SetValue(value) } } @@ -167,8 +167,8 @@ func NewBattery(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInterfac } func (dev *Battery) update(payload map[string]interface{}) { - value, exists := payload[dev.Expose.Name].(float64) - if exists { + value, err := convertToFloat64(payload[dev.Expose.Name]) + if err == nil { dev.GetAttribute("level").SetValue(value) } } @@ -232,13 +232,13 @@ func NewPowerMeter(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInter func (dev *PowerMeter) update(payload map[string]interface{}) { // power - value, exists := payload[dev.Expose.Name].(float64) - if exists { + value, err := convertToFloat64(payload[dev.Expose.Name]) + if err == nil { dev.GetAttribute("power").SetValue(value) } // energy - value, exists = payload["energy"].(float64) - if exists { + value, err = convertToFloat64(payload["energy"]) + if err == nil { dev.GetAttribute("energy").SetValue(value) } }