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