9
9
from zhaquirks .tuya import TuyaLocalCluster
10
10
from zhaquirks .tuya .mcu import TuyaMCUCluster
11
11
12
+ # Temp DP 1, Humidity DP 2, Battery DP 3
13
+ TUYA_TEMP01_HUM02_BAT03 = b"\x09 \xe0 \x02 \x0b \x33 \x01 \x02 \x00 \x04 \x00 \x00 \x00 \xfd \x02 \x02 \x00 \x04 \x00 \x00 \x00 \x47 \x03 \x02 \x00 \x04 \x00 \x00 \x00 \x01 "
14
+ # Temp DP 1, Humidity DP 2, Battery DP 4
15
+ TUYA_TEMP01_HUM02_BAT04 = b"\x09 \xe0 \x02 \x0b \x33 \x01 \x02 \x00 \x04 \x00 \x00 \x00 \xfd \x02 \x02 \x00 \x04 \x00 \x00 \x00 \x47 \x04 \x02 \x00 \x04 \x00 \x00 \x00 \x01 "
16
+ TUYA_USP = b"\x09 \xe0 \x02 \x0b \x33 \x01 \x02 \x00 \x04 \x00 \x00 \x00 \xfd \x02 \x02 \x00 \x04 \x00 \x00 \x00 \x47 \xff \x02 \x00 \x04 \x00 \x00 \x00 \x64 "
17
+
18
+ ZCL_TUYA_VERSION_RSP = b"\x09 \x06 \x11 \x01 \x6d \x82 "
19
+
12
20
zhaquirks .setup ()
13
21
14
22
@@ -74,8 +82,7 @@ async def test_handle_get_data(
74
82
== data .data .datapoints [2 ].data .payload * 2
75
83
)
76
84
77
- message = b"\x09 \xe0 \x02 \x0b \x33 \x01 \x02 \x00 \x04 \x00 \x00 \x00 \xfd \x02 \x02 \x00 \x04 \x00 \x00 \x00 \x47 \xff \x02 \x00 \x04 \x00 \x00 \x00 \x64 "
78
- hdr , data = ep .tuya_manufacturer .deserialize (message )
85
+ hdr , data = ep .tuya_manufacturer .deserialize (TUYA_USP )
79
86
80
87
status = ep .tuya_manufacturer .handle_get_data (data .data )
81
88
assert status == foundation .Status .UNSUPPORTED_ATTRIBUTE
@@ -91,19 +98,21 @@ async def test_handle_get_data(
91
98
92
99
93
100
@pytest .mark .parametrize (
94
- "model,manuf,rh_scale,temp_scale" ,
101
+ "model,manuf,rh_scale,temp_scale,state_rpt " ,
95
102
[
96
- ("_TZE200_yjjdcqsq" , "TS0601" , 100 , 10 ),
97
- ("_TZE200_9yapgbuv" , "TS0601" , 100 , 10 ),
98
- ("_TZE204_yjjdcqsq" , "TS0601" , 100 , 10 ),
99
- ("_TZE200_utkemkbs" , "TS0601" , 100 , 10 ),
100
- ("_TZE204_utkemkbs" , "TS0601" , 100 , 10 ),
101
- ("_TZE204_yjjdcqsq" , "TS0601" , 100 , 10 ),
102
- ("_TZE204_ksz749x8" , "TS0601" , 100 , 10 ),
103
+ ("_TZE200_yjjdcqsq" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT04 ),
104
+ ("_TZE200_9yapgbuv" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT04 ),
105
+ ("_TZE204_yjjdcqsq" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT04 ),
106
+ ("_TZE200_utkemkbs" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT04 ),
107
+ ("_TZE204_utkemkbs" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT04 ),
108
+ ("_TZE204_yjjdcqsq" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT04 ),
109
+ ("_TZE204_ksz749x8" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT04 ),
110
+ ("_TZE204_upagmta9" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT03 ),
111
+ ("_TZE204_upagmta9" , "TS0601" , 100 , 10 , TUYA_TEMP01_HUM02_BAT03 ),
103
112
],
104
113
)
105
114
async def test_handle_get_data_enum_batt (
106
- zigpy_device_from_v2_quirk , model , manuf , rh_scale , temp_scale
115
+ zigpy_device_from_v2_quirk , model , manuf , rh_scale , temp_scale , state_rpt
107
116
):
108
117
"""Test handle_get_data for multiple attributes - enum battery."""
109
118
@@ -116,8 +125,7 @@ async def test_handle_get_data_enum_batt(
116
125
assert ep .tuya_manufacturer is not None
117
126
assert isinstance (ep .tuya_manufacturer , TuyaMCUCluster )
118
127
119
- message = b"\x09 \xe0 \x02 \x0b \x33 \x01 \x02 \x00 \x04 \x00 \x00 \x00 \xfd \x02 \x02 \x00 \x04 \x00 \x00 \x00 \x47 \x04 \x02 \x00 \x04 \x00 \x00 \x00 \x01 "
120
- hdr , data = ep .tuya_manufacturer .deserialize (message )
128
+ hdr , data = ep .tuya_manufacturer .deserialize (state_rpt )
121
129
122
130
status = ep .tuya_manufacturer .handle_get_data (data .data )
123
131
@@ -135,8 +143,7 @@ async def test_handle_get_data_enum_batt(
135
143
136
144
assert ep .power .get ("battery_percentage_remaining" ) == 100
137
145
138
- message = b"\x09 \xe0 \x02 \x0b \x33 \x01 \x02 \x00 \x04 \x00 \x00 \x00 \xfd \x02 \x02 \x00 \x04 \x00 \x00 \x00 \x47 \xff \x02 \x00 \x04 \x00 \x00 \x00 \x64 "
139
- hdr , data = ep .tuya_manufacturer .deserialize (message )
146
+ hdr , data = ep .tuya_manufacturer .deserialize (TUYA_USP )
140
147
141
148
status = ep .tuya_manufacturer .handle_get_data (data .data )
142
149
assert status == foundation .Status .UNSUPPORTED_ATTRIBUTE
0 commit comments