Skip to content

Commit d2787c7

Browse files
authored
Add newer firmware Frient Heat Alarm (#1170)
1 parent 4682b81 commit d2787c7

File tree

1 file changed

+95
-2
lines changed

1 file changed

+95
-2
lines changed

zhaquirks/develco/heat_alarm.py

Lines changed: 95 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
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

2828
MANUFACTURER = 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

Comments
 (0)