Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
c8278e8
ledvance zigbee meter plug driver pull
LQ107 Jan 26, 2026
316276d
add the handle file
LQ107 Jan 26, 2026
c01a9d0
add driver fingerprints
LQ107 Jan 30, 2026
5e5a387
modify the ledvance zigbee meter plug device Label
LQ107 Jan 30, 2026
98aafe1
add driver for PLUG EU EM T
LQ107 Jan 30, 2026
6a76283
delete the PLUG EU EM T driver
LQ107 Jan 30, 2026
14de7ba
Update the PLUG COMPACT EU EM T device driver
LQ107 Feb 10, 2026
99ce6ea
set the multiplier and divisor fields in the initial handler
LQ107 Mar 3, 2026
22bc75b
disable the rely on the defaults to read the multiplier/divisor and A…
LQ107 Mar 4, 2026
b81fa6b
fixing the init.lua multiplier/divisor handle ,fixing the commit conf…
LQ107 Mar 4, 2026
328797c
update sub driver init.lua files
LQ107 Mar 4, 2026
8f598e7
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 4, 2026
5004c95
Remove unnecessary files
LQ107 Mar 5, 2026
09b89b7
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 5, 2026
3a46f9d
Remove redundant code
LQ107 Mar 6, 2026
b7eb6b6
Merge branch 'ledvance_zigbee_meter_plug' of https://github.com/LQ107…
LQ107 Mar 6, 2026
6b409cb
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 6, 2026
41d31e7
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 10, 2026
28e7783
1.add the test unit 2. add sub driver register 3.fixing the energy_me…
LQ107 Mar 11, 2026
875c75f
revert the gitgnore file to the default
LQ107 Mar 11, 2026
4011278
Merge branch 'ledvance_zigbee_meter_plug' of https://github.com/LQ107…
LQ107 Mar 11, 2026
3347541
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 11, 2026
6063c89
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 12, 2026
9424f57
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 12, 2026
2f5fe4b
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 13, 2026
d02ef90
1.fixing the energy meter value redundant processing 2.change the lo…
LQ107 Mar 16, 2026
c6d53e8
Merge branch 'ledvance_zigbee_meter_plug' of https://github.com/LQ107…
LQ107 Mar 16, 2026
6ee58b2
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 19, 2026
2c5a233
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 26, 2026
420f963
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Mar 31, 2026
4650e24
1.Use the default SmartThings simple metering handlers
LQ107 Apr 9, 2026
5e6d9d6
Merge branch 'ledvance_zigbee_meter_plug' of https://github.com/LQ107…
LQ107 Apr 14, 2026
542e724
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Apr 14, 2026
bea9429
fixing the following issue:
LQ107 Apr 15, 2026
d0f3ccb
Merge branch 'ledvance_zigbee_meter_plug' of https://github.com/LQ107…
LQ107 Apr 15, 2026
d555fe4
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Apr 15, 2026
0d04304
Fix the issues of missing trailing newline and remove trailing white …
LQ107 Apr 20, 2026
d25cf5c
Merge branch 'ledvance_zigbee_meter_plug' of https://github.com/LQ107…
LQ107 Apr 20, 2026
905fe30
Merge branch 'main' into ledvance_zigbee_meter_plug
LQ107 Apr 20, 2026
c4f13dd
1.rename the driver file name to ledvance-metering-plug 2.keep the g…
LQ107 Apr 21, 2026
c651f91
Merge branch 'ledvance_zigbee_meter_plug' of https://github.com/LQ107…
LQ107 Apr 21, 2026
c81e7e3
keep gitignore same to the main branch
LQ107 Apr 21, 2026
2817eb4
add LEDVANCE/PLUG EU EM T meter plug driver
LQ107 Jun 1, 2026
14c65b3
add the min_api_version option value for PLUG EU EM T
LQ107 Jun 2, 2026
126d24a
add Min api version
LQ107 Jun 3, 2026
107f072
PLUG EU EM T only add fingerprints
LQ107 Jun 9, 2026
93d250f
move sub driver path to zigbee-switch-power
LQ107 Jun 11, 2026
aa8103b
remove the old citations of the PLUG COMPACT EU EM T
LQ107 Jun 11, 2026
70b6187
PLUG EU EM T add sub driver model
LQ107 Jun 12, 2026
d1d7e2e
Merge branch 'main' into Ledvance_Zigbee_EM_EU_PLUG
LQ107 Jun 12, 2026
f62199f
remove old sub driver files
LQ107 Jun 12, 2026
73632d4
remove old sub driver load
LQ107 Jun 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions drivers/SmartThings/zigbee-switch/fingerprints.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1735,6 +1735,11 @@ zigbeeManufacturer:
manufacturer: LEDVANCE
model: PLUG COMPACT EU EM T
deviceProfileName: switch-power-energy
- id: "LEDVANCE/PLUG EU EM T"
deviceLabel: SMART ZIGBEE PLUG EU EM T
manufacturer: LEDVANCE
model: PLUG EU EM T
deviceProfileName: switch-power-energy
- id: "OSRAM/LIGHTIFY Edge-lit flushmount"
deviceLabel: SYLVANIA Light
manufacturer: OSRAM
Expand Down

This file was deleted.

1 change: 0 additions & 1 deletion drivers/SmartThings/zigbee-switch/src/sub_drivers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ return {
lazy_load_if_possible("sinope"),
lazy_load_if_possible("sinope-dimmer"),
lazy_load_if_possible("zigbee-dimmer-power-energy"),
lazy_load_if_possible("ledvance-metering-plug"),
lazy_load_if_possible("zigbee-metering-plug-power-consumption-report"),
lazy_load_if_possible("jasco"),
lazy_load_if_possible("multi-switch-no-master"),
Expand Down
Comment thread
LQ107 marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,25 @@ local mock_device = test.mock_device.build_test_zigbee_device(
}
)

local mock_device_eu_em_t = test.mock_device.build_test_zigbee_device(
{
profile = t_utils.get_profile_definition("switch-power-energy.yml"),
zigbee_endpoints = {
[1] = {
id = 1,
manufacturer = "LEDVANCE",
model = "PLUG EU EM T",
server_clusters = { 0x0006, 0x0702 }
}
}
}
)

zigbee_test_utils.prepare_zigbee_env_info()

local function test_init()
test.disable_startup_messages()

@cjswedes cjswedes Jun 15, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is one reason tests are failing (the startup messages should be disabled, otherwise init runs automatically). The other reason is because since this is now nested under the zigbee-switch-power subdriver, you need to add the ledvance fingerprints to that list of fingerprints also https://github.com/SmartThingsCommunity/SmartThingsEdgeDrivers/blob/main/drivers/SmartThings/zigbee-switch/src/zigbee-switch-power/fingerprints.lua

test.mock_device.add_test_device(mock_device)
test.mock_device.add_test_device(mock_device_eu_em_t)
end

test.set_test_init_function(test_init)
Expand All @@ -40,7 +54,7 @@ test.register_coroutine_test(
assert(mock_device:get_field(zigbee_constants.SIMPLE_METERING_DIVISOR_KEY) == 100)
end,
{
min_api_version = 15
min_api_version = 17
}
)

Expand All @@ -55,7 +69,37 @@ test.register_coroutine_test(
assert(mock_device:get_field(zigbee_constants.SIMPLE_METERING_DIVISOR_KEY) == 1000)
end,
{
min_api_version = 15
min_api_version = 17
}
)

test.register_coroutine_test(
"Device init should set default multiplier and divisor only when not already set - PLUG EU EM T",
function()
assert(mock_device_eu_em_t:get_field(zigbee_constants.SIMPLE_METERING_MULTIPLIER_KEY) == nil)
assert(mock_device_eu_em_t:get_field(zigbee_constants.SIMPLE_METERING_DIVISOR_KEY) == nil)
test.socket.device_lifecycle:__queue_receive({ mock_device_eu_em_t.id, "init" })
test.wait_for_events()
assert(mock_device_eu_em_t:get_field(zigbee_constants.SIMPLE_METERING_MULTIPLIER_KEY) == 1)
assert(mock_device_eu_em_t:get_field(zigbee_constants.SIMPLE_METERING_DIVISOR_KEY) == 100)
end,
{
min_api_version = 17
}
)

test.register_coroutine_test(
"Device init should preserve device-reported multiplier and divisor - PLUG EU EM T",
function()
mock_device_eu_em_t:set_field(zigbee_constants.SIMPLE_METERING_MULTIPLIER_KEY, 5, {persist = true})
mock_device_eu_em_t:set_field(zigbee_constants.SIMPLE_METERING_DIVISOR_KEY, 1000, {persist = true})
test.socket.device_lifecycle:__queue_receive({ mock_device_eu_em_t.id, "init" })
test.wait_for_events()
assert(mock_device_eu_em_t:get_field(zigbee_constants.SIMPLE_METERING_MULTIPLIER_KEY) == 5)
assert(mock_device_eu_em_t:get_field(zigbee_constants.SIMPLE_METERING_DIVISOR_KEY) == 1000)
end,
{
min_api_version = 17
}
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
-- Licensed under the Apache License, Version 2.0

return function(opts, driver, device, ...)
local FINGERPRINTS = require("ledvance-metering-plug.fingerprints")
local FINGERPRINTS = require("zigbee-switch-power.ledvance-metering-plug.fingerprints")
for _, fingerprint in ipairs(FINGERPRINTS) do
if device:get_manufacturer() == fingerprint.mfr and device:get_model() == fingerprint.model then
local subdriver = require("ledvance-metering-plug")
local subdriver = require("zigbee-switch-power.ledvance-metering-plug")
return true, subdriver
end
end
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Copyright 2026 SmartThings, Inc.
-- Licensed under the Apache License, Version 2.0

return {
{ mfr = "LEDVANCE", model = "PLUG COMPACT EU EM T" },
{ mfr = "LEDVANCE", model = "PLUG EU EM T" }
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ local ledvance_metering_plug = {
lifecycle_handlers = {
init = device_init
},
can_handle = require("ledvance-metering-plug.can_handle")
can_handle = require("zigbee-switch-power.ledvance-metering-plug.can_handle")
}

return ledvance_metering_plug
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ local lazy_load = require "lazy_load_subdriver"

return {
lazy_load("zigbee-switch-power.aurora-relay"),
lazy_load("zigbee-switch-power.vimar")
lazy_load("zigbee-switch-power.vimar"),
lazy_load("zigbee-switch-power.ledvance-metering-plug")
}
Loading