Skip to content

Commit 15836e0

Browse files
authored
Merge branch 'dev' into add-_TZE204_upagmta9
2 parents eddd818 + d9481d3 commit 15836e0

27 files changed

+109
-41
lines changed

tests/test_tuya_builder.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
from zigpy.quirks.v2 import CustomDeviceV2
99
import zigpy.types as t
1010
from zigpy.zcl import foundation
11-
from zigpy.zcl.clusters.general import Basic, BatterySize
11+
from zigpy.zcl.clusters.general import Basic
1212

1313
from tests.common import ClusterListener, MockDatetime, wait_for_zigpy_tasks
1414
import zhaquirks
15+
from zhaquirks.const import BatterySize
1516
from zhaquirks.tuya import (
1617
TUYA_QUERY_DATA,
1718
TUYA_SET_TIME,
@@ -93,6 +94,9 @@ async def test_convenience_methods(device_mock, method_name, attr_name, exp_clas
9394
(TuyaPowerConfigurationCluster2AAA, None, None, None, BatterySize.AAA, 2, 15),
9495
(None, BatterySize.CR123A, 1, 60, BatterySize.CR123A, 1, 60),
9596
(None, BatterySize.CR123A, 1, None, BatterySize.CR123A, 1, 30),
97+
(None, BatterySize.CR2450, 1, None, BatterySize.CR2450, 1, 30),
98+
(None, BatterySize.CR2032, 1, None, BatterySize.CR2032, 1, 30),
99+
(None, BatterySize.CR1632, 1, None, BatterySize.CR1632, 1, 30),
96100
(None, BatterySize.AA, None, None, BatterySize.AA, None, None),
97101
(None, None, None, None, None, None, None),
98102
],

tests/test_xiaomi.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
OUTPUT_CLUSTERS,
4848
PROFILE_ID,
4949
ZONE_STATUS_CHANGE_COMMAND,
50+
BatterySize,
5051
)
5152
from zhaquirks.xiaomi import (
5253
LUMI,
@@ -58,6 +59,8 @@
5859
XiaomiQuickInitDevice,
5960
handle_quick_init,
6061
)
62+
import zhaquirks.xiaomi.aqara.cube
63+
import zhaquirks.xiaomi.aqara.cube_aqgl01
6164
import zhaquirks.xiaomi.aqara.driver_curtain_e1
6265
from zhaquirks.xiaomi.aqara.feeder_acn001 import (
6366
FEEDER_ATTR,
@@ -75,9 +78,14 @@
7578
AqaraFeederAcn001,
7679
OppleCluster,
7780
)
81+
import zhaquirks.xiaomi.aqara.magnet_ac01
82+
import zhaquirks.xiaomi.aqara.magnet_acn001
7883
import zhaquirks.xiaomi.aqara.magnet_agl02
84+
import zhaquirks.xiaomi.aqara.magnet_aq2
7985
import zhaquirks.xiaomi.aqara.motion_ac02
86+
import zhaquirks.xiaomi.aqara.motion_acn001
8087
import zhaquirks.xiaomi.aqara.motion_agl02
88+
import zhaquirks.xiaomi.aqara.motion_agl04
8189
import zhaquirks.xiaomi.aqara.motion_aq2
8290
import zhaquirks.xiaomi.aqara.motion_aq2b
8391
import zhaquirks.xiaomi.aqara.plug
@@ -89,6 +97,7 @@
8997
from zhaquirks.xiaomi.aqara.thermostat_agl001 import ScheduleEvent, ScheduleSettings
9098
import zhaquirks.xiaomi.aqara.weather
9199
import zhaquirks.xiaomi.mija.motion
100+
import zhaquirks.xiaomi.mija.smoke
92101

93102
zhaquirks.setup()
94103

@@ -384,10 +393,27 @@ async def test_mija_battery(zigpy_device_from_quirk, voltage, bpr):
384393
@pytest.mark.parametrize(
385394
"quirk, batt_size",
386395
(
387-
(zhaquirks.xiaomi.aqara.vibration_aq1.VibrationAQ1, 0x0A),
388-
(zhaquirks.xiaomi.mija.motion.Motion, 0x09),
389-
(zhaquirks.xiaomi.mija.sensor_switch.MijaButton, 0x0A),
390-
(zhaquirks.xiaomi.mija.sensor_magnet.Magnet, 0x0B),
396+
(zhaquirks.xiaomi.aqara.vibration_aq1.VibrationAQ1, BatterySize.CR2032),
397+
(zhaquirks.xiaomi.aqara.cube.Cube, BatterySize.CR2450),
398+
(zhaquirks.xiaomi.aqara.cube_aqgl01.CubeAQGL01, BatterySize.CR2450),
399+
(zhaquirks.xiaomi.aqara.cube_aqgl01.CubeCAGL02, BatterySize.CR2450),
400+
(zhaquirks.xiaomi.aqara.magnet_ac01.LumiMagnetAC01, BatterySize.CR123A),
401+
(zhaquirks.xiaomi.aqara.magnet_acn001.MagnetE1, BatterySize.CR1632),
402+
(zhaquirks.xiaomi.aqara.magnet_agl02.MagnetT1, BatterySize.CR1632),
403+
(zhaquirks.xiaomi.aqara.magnet_aq2.MagnetAQ2, BatterySize.CR1632),
404+
(zhaquirks.xiaomi.aqara.motion_ac02.LumiMotionAC02, BatterySize.CR1632),
405+
(zhaquirks.xiaomi.aqara.motion_acn001.MotionE1, BatterySize.CR1632),
406+
(zhaquirks.xiaomi.aqara.motion_agl02.MotionT1, BatterySize.CR1632),
407+
(zhaquirks.xiaomi.aqara.motion_agl04.LumiLumiMotionAgl04, BatterySize.CR1632),
408+
(zhaquirks.xiaomi.aqara.motion_aq2.MotionAQ2, BatterySize.CR2450),
409+
(zhaquirks.xiaomi.aqara.motion_aq2b.MotionAQ2, BatterySize.CR2450),
410+
(zhaquirks.xiaomi.mija.motion.Motion, BatterySize.CR2450),
411+
(zhaquirks.xiaomi.mija.sensor_switch.MijaButton, BatterySize.CR2032),
412+
(zhaquirks.xiaomi.mija.sensor_magnet.Magnet, BatterySize.CR1632),
413+
(
414+
zhaquirks.xiaomi.mija.smoke.MijiaHoneywellSmokeDetectorSensor,
415+
BatterySize.CR123A,
416+
),
391417
),
392418
)
393419
async def test_xiaomi_batt_size(zigpy_device_from_quirk, quirk, batt_size):

zhaquirks/const.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
SIG_NODE_DESC,
1313
SIG_SKIP_CONFIG,
1414
)
15+
import zigpy.types as t
1516

1617
ARGS = "args"
1718
ATTR_ID = "attr_id"
@@ -125,3 +126,21 @@
125126
ZONE_STATE = 0x0000
126127
ZONE_TYPE = 0x0001
127128
ZONE_STATUS = 0x0002
129+
130+
131+
class BatterySize(t.enum8):
132+
"""Battery sizes."""
133+
134+
No_battery = 0x00
135+
Built_in = 0x01
136+
Other = 0x02
137+
AA = 0x03
138+
AAA = 0x04
139+
C = 0x05
140+
D = 0x06
141+
CR2 = 0x07
142+
CR123A = 0x08
143+
CR2450 = 0x09
144+
CR2032 = 0x0A
145+
CR1632 = 0x0B
146+
Unknown = 0xFF

zhaquirks/ikea/__init__.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from zigpy.zcl.clusters.general import Basic, PowerConfiguration, Scenes
99

1010
from zhaquirks import EventableCluster
11+
from zhaquirks.const import BatterySize
1112

1213
_LOGGER = logging.getLogger(__name__)
1314

@@ -148,7 +149,7 @@ class PowerConfig1AAACluster(CustomCluster, PowerConfiguration):
148149
"""Updating power attributes: 2 AAA."""
149150

150151
_CONSTANT_ATTRIBUTES = {
151-
BATTERY_SIZE: 4,
152+
BATTERY_SIZE: BatterySize.AAA,
152153
BATTERY_QUANTITY: 1,
153154
BATTERY_RATED_VOLTAGE: 15,
154155
}
@@ -158,7 +159,7 @@ class PowerConfig2AAACluster(CustomCluster, PowerConfiguration):
158159
"""Updating power attributes: 2 AAA."""
159160

160161
_CONSTANT_ATTRIBUTES = {
161-
BATTERY_SIZE: 4,
162+
BATTERY_SIZE: BatterySize.AAA,
162163
BATTERY_QUANTITY: 2,
163164
BATTERY_RATED_VOLTAGE: 15,
164165
}
@@ -168,7 +169,7 @@ class PowerConfig2CRCluster(CustomCluster, PowerConfiguration):
168169
"""Updating power attributes: 2 CR2032."""
169170

170171
_CONSTANT_ATTRIBUTES = {
171-
BATTERY_SIZE: 10,
172+
BATTERY_SIZE: BatterySize.CR2032,
172173
BATTERY_QUANTITY: 2,
173174
BATTERY_RATED_VOLTAGE: 30,
174175
}
@@ -178,7 +179,7 @@ class PowerConfig1CRCluster(CustomCluster, PowerConfiguration):
178179
"""Updating power attributes: 1 CR2032."""
179180

180181
_CONSTANT_ATTRIBUTES = {
181-
BATTERY_SIZE: 10,
182+
BATTERY_SIZE: BatterySize.CR2032,
182183
BATTERY_QUANTITY: 1,
183184
BATTERY_RATED_VOLTAGE: 30,
184185
}
@@ -189,7 +190,7 @@ class PowerConfig1CRXCluster(CustomCluster, PowerConfiguration):
189190

190191
_CONSTANT_ATTRIBUTES = {
191192
BATTERY_VOLTAGE: 0,
192-
BATTERY_SIZE: 10,
193+
BATTERY_SIZE: BatterySize.CR2032,
193194
BATTERY_QUANTITY: 1,
194195
BATTERY_RATED_VOLTAGE: 30,
195196
}

zhaquirks/tuya/__init__.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,7 @@
1111
import zigpy.types as t
1212
from zigpy.zcl import BaseAttributeDefs, foundation
1313
from zigpy.zcl.clusters.closures import WindowCovering
14-
from zigpy.zcl.clusters.general import (
15-
Basic,
16-
BatterySize,
17-
LevelControl,
18-
OnOff,
19-
PowerConfiguration,
20-
)
14+
from zigpy.zcl.clusters.general import Basic, LevelControl, OnOff, PowerConfiguration
2115
from zigpy.zcl.clusters.homeautomation import ElectricalMeasurement
2216
from zigpy.zcl.clusters.hvac import Thermostat, UserInterface
2317
from zigpy.zcl.clusters.smartenergy import Metering
@@ -30,6 +24,7 @@
3024
RIGHT,
3125
SHORT_PRESS,
3226
ZHA_SEND_EVENT,
27+
BatterySize,
3328
)
3429

3530
# ---------------------------------------------------------

zhaquirks/tuya/builder/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass
1818
import zigpy.types as t
1919
from zigpy.zcl import foundation
20-
from zigpy.zcl.clusters.general import BatterySize
2120
from zigpy.zcl.clusters.measurement import (
2221
PM25,
2322
CarbonDioxideConcentration,
@@ -31,6 +30,7 @@
3130
from zigpy.zcl.clusters.smartenergy import Metering
3231
from zigpy.zcl.foundation import BaseAttributeDefs, ZCLAttributeDef
3332

33+
from zhaquirks.const import BatterySize
3434
from zhaquirks.tuya import (
3535
TUYA_CLUSTER_ID,
3636
BaseEnchantedDevice,
@@ -54,6 +54,9 @@
5454
BatterySize.AA: 15,
5555
BatterySize.CR2: 30,
5656
BatterySize.CR123A: 30,
57+
BatterySize.CR2450: 30,
58+
BatterySize.CR2032: 30,
59+
BatterySize.CR1632: 30,
5760
BatterySize.Unknown: None,
5861
}
5962

zhaquirks/tuya/tuya_gas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
from zigpy.quirks.v2.homeassistant import CONCENTRATION_PARTS_PER_MILLION, UnitOfTime
55
from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass
66
import zigpy.types as t
7-
from zigpy.zcl.clusters.general import BatterySize
87
from zigpy.zcl.clusters.security import IasZone
98

9+
from zhaquirks.const import BatterySize
1010
from zhaquirks.tuya import TuyaLocalCluster
1111
from zhaquirks.tuya.builder import TuyaQuirkBuilder
1212

zhaquirks/tuya/tuya_sensor.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import zigpy.types as t
99
from zigpy.zcl import foundation
1010

11+
from zhaquirks.const import BatterySize
1112
from zhaquirks.tuya import (
1213
TUYA_MCU_VERSION_REQ,
1314
TUYA_QUERY_DATA,
@@ -334,7 +335,7 @@ def handle_mcu_version_response(
334335
.applies_to("_TZE200_n8dljorx", "TS0601")
335336
.tuya_illuminance(dp_id=101)
336337
.tuya_contact(dp_id=1)
337-
.tuya_battery(dp_id=2)
338+
.tuya_battery(dp_id=2, battery_type=BatterySize.CR2032, battery_qty=1)
338339
.skip_configuration()
339340
.add_to_registry()
340341
)

zhaquirks/tuya/tuya_siren.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
from zigpy.quirks.v2.homeassistant import PERCENTAGE, UnitOfTemperature, UnitOfTime
55
from zigpy.quirks.v2.homeassistant.binary_sensor import BinarySensorDeviceClass
66
import zigpy.types as t
7-
from zigpy.zcl.clusters.general import BatterySize
87

8+
from zhaquirks.const import BatterySize
99
from zhaquirks.tuya.builder import TuyaQuirkBuilder
1010

1111

zhaquirks/tuya/tuya_valve.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
from zigpy.quirks.v2.homeassistant import UnitOfTime, UnitOfVolume
77
from zigpy.quirks.v2.homeassistant.sensor import SensorDeviceClass, SensorStateClass
88
import zigpy.types as t
9-
from zigpy.zcl.clusters.general import BatterySize
109
from zigpy.zcl.clusters.smartenergy import Metering
1110

11+
from zhaquirks.const import BatterySize
1212
from zhaquirks.tuya import TUYA_CLUSTER_ID
1313
from zhaquirks.tuya.builder import TuyaQuirkBuilder, TuyaValveWaterConsumed
1414
from zhaquirks.tuya.mcu import TuyaMCUCluster

0 commit comments

Comments
 (0)