1515zhaquirks .setup ()
1616
1717
18- def test_ikea_starkvind (assert_signature_matches_quirk ):
19- """Test new 'STARKVIND Air purifier table' signature is matched to its quirk."""
20-
21- signature = {
22- "node_descriptor" : "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4476, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)" ,
23- "endpoints" : {
24- "1" : {
25- "profile_id" : 260 ,
26- "device_type" : "0x0007" ,
27- "in_clusters" : [
28- "0x0000" ,
29- "0x0003" ,
30- "0x0004" ,
31- "0x0005" ,
32- "0x0202" ,
33- "0xfc57" ,
34- "0xfc7d" ,
35- ],
36- "out_clusters" : ["0x0019" , "0x0400" , "0x042a" ],
37- },
38- "242" : {
39- "profile_id" : 41440 ,
40- "device_type" : "0x0061" ,
41- "in_clusters" : [],
42- "out_clusters" : ["0x0021" ],
43- },
44- },
45- "manufacturer" : "IKEA of Sweden" ,
46- "model" : "STARKVIND Air purifier" ,
47- "class" : "ikea.starkvind.IkeaSTARKVIND" ,
48- }
49-
50- assert_signature_matches_quirk (zhaquirks .ikea .starkvind .IkeaSTARKVIND , signature )
51-
52-
53- def test_ikea_starkvind_v2 (assert_signature_matches_quirk ):
54- """Test new 'STARKVIND Air purifier table' signature is matched to its quirk."""
55-
56- signature = {
57- "node_descriptor" : "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress|RxOnWhenIdle|MainsPowered|FullFunctionDevice: 142>, manufacturer_code=4476, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)" ,
58- "endpoints" : {
59- "1" : {
60- "profile_id" : 260 ,
61- "device_type" : "0x0007" ,
62- "in_clusters" : [
63- "0x0000" ,
64- "0x0003" ,
65- "0x0004" ,
66- "0x0005" ,
67- "0x0202" ,
68- "0xfc57" ,
69- "0xfc7c" ,
70- "0xfc7d" ,
71- ],
72- "out_clusters" : ["0x0019" , "0x0400" , "0x042a" ],
73- },
74- "242" : {
75- "profile_id" : 41440 ,
76- "device_type" : "0x0061" ,
77- "in_clusters" : [],
78- "out_clusters" : ["0x0021" ],
79- },
80- },
81- "manufacturer" : "IKEA of Sweden" ,
82- "model" : "STARKVIND Air purifier table" ,
83- "class" : "ikea.starkvind.IkeaSTARKVIND_v2" ,
84- }
85-
86- assert_signature_matches_quirk (zhaquirks .ikea .starkvind .IkeaSTARKVIND_v2 , signature )
87-
88-
8918@pytest .mark .parametrize ("attribute" , ["fan_speed" , "fan_mode" ])
9019@pytest .mark .parametrize (
9120 "value,expected" ,
@@ -98,11 +27,13 @@ def test_ikea_starkvind_v2(assert_signature_matches_quirk):
9827 ],
9928)
10029async def test_fan_speed_mode_update (
101- zigpy_device_from_quirk , attribute , value , expected
30+ zigpy_device_from_v2_quirk , attribute , value , expected
10231):
10332 """Test reading the fan speed and mode."""
10433
105- starkvind_device = zigpy_device_from_quirk (zhaquirks .ikea .starkvind .IkeaSTARKVIND )
34+ starkvind_device = zigpy_device_from_v2_quirk (
35+ "IKEA of Sweden" , "STARKVIND Air purifier"
36+ )
10637 assert starkvind_device .model == "STARKVIND Air purifier"
10738
10839 ikea_cluster = starkvind_device .endpoints [1 ].in_clusters [
@@ -117,10 +48,12 @@ async def test_fan_speed_mode_update(
11748 assert ikea_listener .attribute_updates [0 ] == (attr_id , expected )
11849
11950
120- async def test_pm25_cluster_read (zigpy_device_from_quirk ):
51+ async def test_pm25_cluster_read (zigpy_device_from_v2_quirk ):
12152 """Test reading from PM25 cluster."""
12253
123- starkvind_device = zigpy_device_from_quirk (zhaquirks .ikea .starkvind .IkeaSTARKVIND )
54+ starkvind_device = zigpy_device_from_v2_quirk (
55+ "IKEA of Sweden" , "STARKVIND Air purifier"
56+ )
12457 assert starkvind_device .model == "STARKVIND Air purifier"
12558
12659 pm25_cluster = starkvind_device .endpoints [1 ].in_clusters [PM25 .cluster_id ]
@@ -175,7 +108,7 @@ def mock_read(attributes, manufacturer=None):
175108)
176109async def test_double_power_config_firmware (
177110 caplog ,
178- zigpy_device_from_quirk ,
111+ zigpy_device_from_v2_quirk ,
179112 firmware ,
180113 pct_device ,
181114 pct_correct ,
@@ -184,7 +117,7 @@ async def test_double_power_config_firmware(
184117):
185118 """Test battery percentage remaining is doubled for old firmware."""
186119
187- device = zigpy_device_from_quirk ( zhaquirks . ikea . fivebtnremote . IkeaTradfriRemote1 )
120+ device = zigpy_device_from_v2_quirk ( "IKEA of Sweden" , "TRADFRI remote control" )
188121
189122 basic_cluster = device .endpoints [1 ].basic
190123 ClusterListener (basic_cluster )
0 commit comments