Skip to content

Commit cf078cc

Browse files
Use only one battery capability in each profile
Use battery if supported by the device, otherwise use batteryLevel if the percentage is not supported. Also add new profiles for devices that do not support a battery.
1 parent d091d04 commit cf078cc

14 files changed

+129
-16
lines changed

drivers/SmartThings/matter-sensor/profiles/co-battery.yml

-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ components:
44
capabilities:
55
- id: carbonMonoxideDetector
66
version: 1
7-
- id: batteryLevel
8-
version: 1
97
- id: battery
108
version: 1
119
- id: hardwareFault

drivers/SmartThings/matter-sensor/profiles/co-comeas-battery.yml

-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ components:
66
version: 1
77
- id: carbonMonoxideMeasurement
88
version: 1
9-
- id: batteryLevel
10-
version: 1
119
- id: battery
1210
version: 1
1311
- id: hardwareFault
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: co-comeas-nobattery
2+
components:
3+
- id: main
4+
capabilities:
5+
- id: carbonMonoxideDetector
6+
version: 1
7+
- id: carbonMonoxideMeasurement
8+
version: 1
9+
- id: hardwareFault
10+
version: 1
11+
- id: firmwareUpdate
12+
version: 1
13+
- id: refresh
14+
version: 1
15+
categories:
16+
- name: SmokeDetector
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: co-nobattery
2+
components:
3+
- id: main
4+
capabilities:
5+
- id: carbonMonoxideDetector
6+
version: 1
7+
- id: hardwareFault
8+
version: 1
9+
- id: firmwareUpdate
10+
version: 1
11+
- id: refresh
12+
version: 1
13+
categories:
14+
- name: SmokeDetector

drivers/SmartThings/matter-sensor/profiles/smoke-battery.yml

-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ components:
66
version: 1
77
- id: hardwareFault
88
version: 1
9-
- id: batteryLevel
10-
version: 1
119
- id: battery
1210
version: 1
1311
- id: firmwareUpdate

drivers/SmartThings/matter-sensor/profiles/smoke-co-battery.yml

-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ components:
66
version: 1
77
- id: carbonMonoxideDetector
88
version: 1
9-
- id: batteryLevel
10-
version: 1
119
- id: battery
1210
version: 1
1311
- id: hardwareFault

drivers/SmartThings/matter-sensor/profiles/smoke-co-comeas-battery.yml

-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ components:
88
version: 1
99
- id: carbonMonoxideMeasurement
1010
version: 1
11-
- id: batteryLevel
12-
version: 1
1311
- id: battery
1412
version: 1
1513
- id: hardwareFault
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: smoke-co-comeas-nobattery
2+
components:
3+
- id: main
4+
capabilities:
5+
- id: smokeDetector
6+
version: 1
7+
- id: carbonMonoxideDetector
8+
version: 1
9+
- id: carbonMonoxideMeasurement
10+
version: 1
11+
- id: hardwareFault
12+
version: 1
13+
- id: firmwareUpdate
14+
version: 1
15+
- id: refresh
16+
version: 1
17+
categories:
18+
- name: SmokeDetector
19+
preferences:
20+
- preferenceId: certifiedpreferences.smokeSensorSensitivity
21+
explicit: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: smoke-co-nobattery
2+
components:
3+
- id: main
4+
capabilities:
5+
- id: smokeDetector
6+
version: 1
7+
- id: carbonMonoxideDetector
8+
version: 1
9+
- id: hardwareFault
10+
version: 1
11+
- id: firmwareUpdate
12+
version: 1
13+
- id: refresh
14+
version: 1
15+
categories:
16+
- name: SmokeDetector
17+
preferences:
18+
- preferenceId: certifiedpreferences.smokeSensorSensitivity
19+
explicit: true

drivers/SmartThings/matter-sensor/profiles/smoke-co-temp-humidity-comeas-battery.yml

-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ components:
1212
version: 1
1313
- id: carbonMonoxideMeasurement
1414
version: 1
15-
- id: batteryLevel
16-
version: 1
1715
- id: battery
1816
version: 1
1917
- id: hardwareFault
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: smoke-co-temp-humidity-comeas-nobattery
2+
components:
3+
- id: main
4+
capabilities:
5+
- id: smokeDetector
6+
version: 1
7+
- id: carbonMonoxideDetector
8+
version: 1
9+
- id: relativeHumidityMeasurement
10+
version: 1
11+
- id: temperatureMeasurement
12+
version: 1
13+
- id: carbonMonoxideMeasurement
14+
version: 1
15+
- id: hardwareFault
16+
version: 1
17+
- id: firmwareUpdate
18+
version: 1
19+
- id: refresh
20+
version: 1
21+
categories:
22+
- name: SmokeDetector
23+
preferences:
24+
- preferenceId: certifiedpreferences.smokeSensorSensitivity
25+
explicit: true
26+
- preferenceId: tempOffset
27+
explicit: true
28+
- preferenceId: humidityOffset
29+
explicit: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: smoke-nobattery
2+
components:
3+
- id: main
4+
capabilities:
5+
- id: smokeDetector
6+
version: 1
7+
- id: hardwareFault
8+
version: 1
9+
- id: firmwareUpdate
10+
version: 1
11+
- id: refresh
12+
version: 1
13+
categories:
14+
- name: SmokeDetector
15+
preferences:
16+
- preferenceId: certifiedpreferences.smokeSensorSensitivity
17+
explicit: true

drivers/SmartThings/matter-sensor/src/smoke-co-alarm/init.lua

+13-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ local HUE_MANUFACTURER_ID = 0x100B
2424

2525
local battery_support = {
2626
NO_BATTERY = "NO_BATTERY",
27+
BATTERY_LEVEL = "BATTERY_LEVEL",
2728
BATTERY_PERCENTAGE = "BATTERY_PERCENTAGE"
2829
}
2930

@@ -57,14 +58,19 @@ local supported_profiles =
5758
{
5859
"co",
5960
"co-battery",
61+
"co-nobattery",
6062
"co-comeas",
6163
"co-comeas-battery",
64+
"co-comeas-nobattery",
6265
"smoke",
63-
"smoke-battey",
66+
"smoke-battery",
67+
"smoke-nobattery",
6468
"smoke-co-comeas",
6569
"smoke-co-comeas-battery",
70+
"smoke-co-comeas-nobattery",
6671
"smoke-co-temp-humidity-comeas",
67-
"smoke-co-temp-humidity-comeas-battery"
72+
"smoke-co-temp-humidity-comeas-battery",
73+
"smoke-co-temp-humidity-comeas-nobattery"
6874
}
6975

7076
local function match_profile(device, battery_supported)
@@ -98,6 +104,8 @@ local function match_profile(device, battery_supported)
98104
end
99105
if battery_supported == battery_support.BATTERY_PERCENTAGE then
100106
profile_name = profile_name .. "-battery"
107+
elseif battery_supported == battery_support.NO_BATTERY then
108+
profile_name = profile_name .. "-nobattery"
101109
end
102110

103111
-- remove leading "-"
@@ -228,6 +236,9 @@ local function power_source_attribute_list_handler(driver, device, ib, response)
228236
if attr.value == 0x0C then
229237
match_profile(device, battery_support.BATTERY_PERCENTAGE)
230238
return
239+
elseif attr.value == 0x0E then
240+
match_profile(driver, device, battery_support.BATTERY_LEVEL)
241+
return
231242
end
232243
end
233244
end

drivers/SmartThings/matter-sensor/src/test/test_matter_smoke_co_alarm_battery.lua

-2
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,12 @@ local cluster_subscribe_list = {
6262
clusters.SmokeCoAlarm.attributes.TestInProgress,
6363
clusters.SmokeCoAlarm.attributes.COState,
6464
clusters.SmokeCoAlarm.attributes.HardwareFaultAlert,
65-
clusters.SmokeCoAlarm.attributes.BatteryAlert,
6665
clusters.TemperatureMeasurement.attributes.MeasuredValue,
6766
clusters.TemperatureMeasurement.attributes.MinMeasuredValue,
6867
clusters.TemperatureMeasurement.attributes.MaxMeasuredValue,
6968
clusters.RelativeHumidityMeasurement.attributes.MeasuredValue,
7069
clusters.CarbonMonoxideConcentrationMeasurement.attributes.MeasuredValue,
7170
clusters.CarbonMonoxideConcentrationMeasurement.attributes.MeasurementUnit,
72-
clusters.PowerSource.attributes.BatChargeLevel,
7371
clusters.PowerSource.attributes.BatPercentRemaining,
7472
}
7573

0 commit comments

Comments
 (0)