2323 OUTPUT_CLUSTERS ,
2424 PROFILE_ID ,
2525)
26- from zhaquirks .develco import DEVELCO , DevelcoIasZone , DevelcoPowerConfiguration
26+ from zhaquirks .develco import DEVELCO , FRIENT , DevelcoIasZone , DevelcoPowerConfiguration
2727
2828MANUFACTURER = 0x1015
2929
@@ -40,7 +40,7 @@ class HESZB120(CustomDevice):
4040 # input_clusters=[0, 1, 3, 15, 32, 1280, 1282] output_clusters=[10, 25]>
4141 # <SimpleDescriptor endpoint=38 profile=260 device_type=770 device_version=0
4242 # input_clusters=[0, 3, 1026] output_clusters=[3]>
43- MODELS_INFO : [(DEVELCO , "HESZB-120" )],
43+ MODELS_INFO : [(DEVELCO , "HESZB-120" ), ( FRIENT , "HESZB-120" ) ],
4444 ENDPOINTS : {
4545 1 : {
4646 PROFILE_ID : 49353 ,
@@ -117,3 +117,96 @@ class HESZB120(CustomDevice):
117117 },
118118 },
119119 }
120+
121+
122+ class HESZB120F (CustomDevice ):
123+ """Frient A/S Heat Alarm."""
124+
125+ manufacturer_id_override = MANUFACTURER
126+
127+ signature = {
128+ # <SimpleDescriptor endpoint=1 profile=49353 device_type=1 device_version=1
129+ # input_clusters=[3, 5, 6] output_clusters=[]>
130+ # <SimpleDescriptor endpoint=35 profile=260 device_type=1026 device_version=0
131+ # input_clusters=[0, 1, 3, 15, 32, 1280, 1282] output_clusters=[10, 25]>
132+ # <SimpleDescriptor endpoint=38 profile=260 device_type=770 device_version=0
133+ # input_clusters=[0, 3, 1026] output_clusters=[3]>
134+ MODELS_INFO : [
135+ (FRIENT , "HESZB-120" ),
136+ ],
137+ ENDPOINTS : {
138+ 1 : {
139+ PROFILE_ID : 49353 ,
140+ DEVICE_TYPE : 1 ,
141+ INPUT_CLUSTERS : [
142+ Identify .cluster_id ,
143+ Scenes .cluster_id ,
144+ OnOff .cluster_id ,
145+ ],
146+ OUTPUT_CLUSTERS : [],
147+ },
148+ 35 : {
149+ PROFILE_ID : zigpy .profiles .zha .PROFILE_ID ,
150+ DEVICE_TYPE : zigpy .profiles .zha .DeviceType .IAS_ZONE ,
151+ INPUT_CLUSTERS : [
152+ Basic .cluster_id ,
153+ PowerConfiguration .cluster_id ,
154+ Identify .cluster_id ,
155+ BinaryInput .cluster_id ,
156+ PollControl .cluster_id ,
157+ IasZone .cluster_id ,
158+ IasWd .cluster_id ,
159+ ],
160+ OUTPUT_CLUSTERS : [Time .cluster_id , Ota .cluster_id ],
161+ },
162+ 38 : {
163+ PROFILE_ID : zigpy .profiles .zha .PROFILE_ID ,
164+ DEVICE_TYPE : zigpy .profiles .zha .DeviceType .TEMPERATURE_SENSOR ,
165+ INPUT_CLUSTERS : [
166+ Basic .cluster_id ,
167+ Identify .cluster_id ,
168+ TemperatureMeasurement .cluster_id ,
169+ ],
170+ OUTPUT_CLUSTERS : [Identify .cluster_id ],
171+ },
172+ },
173+ }
174+
175+ replacement = {
176+ ENDPOINTS : {
177+ 1 : {
178+ PROFILE_ID : 49353 ,
179+ DEVICE_TYPE : 1 ,
180+ INPUT_CLUSTERS : [
181+ Identify .cluster_id ,
182+ Scenes .cluster_id ,
183+ OnOff .cluster_id ,
184+ ],
185+ OUTPUT_CLUSTERS : [],
186+ },
187+ 35 : {
188+ PROFILE_ID : zigpy .profiles .zha .PROFILE_ID ,
189+ DEVICE_TYPE : zigpy .profiles .zha .DeviceType .IAS_ZONE ,
190+ INPUT_CLUSTERS : [
191+ Basic .cluster_id ,
192+ DevelcoPowerConfiguration ,
193+ Identify .cluster_id ,
194+ BinaryInput .cluster_id ,
195+ PollControl .cluster_id ,
196+ DevelcoIasZone ,
197+ IasWd .cluster_id ,
198+ ],
199+ OUTPUT_CLUSTERS : [Time .cluster_id , Ota .cluster_id ],
200+ },
201+ 38 : {
202+ PROFILE_ID : zigpy .profiles .zha .PROFILE_ID ,
203+ DEVICE_TYPE : zigpy .profiles .zha .DeviceType .TEMPERATURE_SENSOR ,
204+ INPUT_CLUSTERS : [
205+ Basic .cluster_id ,
206+ Identify .cluster_id ,
207+ TemperatureMeasurement .cluster_id ,
208+ ],
209+ OUTPUT_CLUSTERS : [Identify .cluster_id ],
210+ },
211+ },
212+ }
0 commit comments