From 4afbc62338eb8d5418da10ff96eeb1da584aba1a Mon Sep 17 00:00:00 2001 From: jkerdreux-imt <jerome.kerdreux@imt-atlantique.fr> Date: Thu, 21 Nov 2024 01:29:37 +0100 Subject: [PATCH] Added DebugDevice Used for new devices type --- xaal.go | 18 ++++++++++++++++++ z2m.go | 1 + 2 files changed, 19 insertions(+) diff --git a/xaal.go b/xaal.go index a3bc437..c45cf4d 100644 --- a/xaal.go +++ b/xaal.go @@ -61,6 +61,10 @@ type LuxMeter struct { XAALDevice } +type DebugDevice struct { + XAALDevice +} + type XAALDeviceInterface interface { update(map[string]interface{}) GetXAALDevice() *xaal.Device @@ -481,8 +485,22 @@ func NewLuxMeter(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInterfa } func (dev *LuxMeter) update(payload map[string]interface{}) { + slog.Info("update", "payload", payload) lux, err := convertToInt(payload[dev.Expose.Name]) if err == nil { dev.GetAttribute("illuminance").SetValue(lux) } } + +// ============================================================================= +// Debug Device +// ============================================================================= +func NewDebugDevice(addr uuid.UUID, zDev *Z2MDevice, exp *Expose) XAALDeviceInterface { + dev := &DebugDevice{XAALDevice{schemas.NewBasic(addr), zDev, exp}} + dev.setup() + return dev +} + +func (dev *DebugDevice) update(payload map[string]interface{}) { + slog.Info("Debug Device update", "payload", payload) +} diff --git a/z2m.go b/z2m.go index 7fcbb3a..68d058c 100644 --- a/z2m.go +++ b/z2m.go @@ -113,6 +113,7 @@ func (zDev *Z2MDevice) FindXAALDevices(gw *Gateway) { "light": NewLamp, "occupancy": NewMotion, "illuminance": NewLuxMeter, + "voltage": NewDebugDevice, } // Search a matching expose name -- GitLab