@@ -2587,8 +2587,16 @@ export const definitions: DefinitionWithExtend[] = [
25872587 heimanExtend . heimanClusterSpecial ( ) ,
25882588 m . deviceEndpoints ( { endpoints : { l1 : 1 , l2 : 2 } } ) ,
25892589 m . onOff ( { endpointNames : [ "l1" , "l2" ] } ) ,
2590- m . deviceTemperature ( ) ,
25912590 m . identify ( ) ,
2591+ m . numeric ( {
2592+ name : "device_intenal_temperature" ,
2593+ cluster : "genDeviceTempCfg" ,
2594+ attribute : "currentTemperature" ,
2595+ description : "Temperature of the device" ,
2596+ unit : "°C" ,
2597+ access : "STATE_GET" ,
2598+ entityCategory : "diagnostic" ,
2599+ } ) ,
25922600 m . enumLookup < "heimanClusterSpecial" , HeimanPrivateCluster > ( {
25932601 name : "switch_type_l1" ,
25942602 endpointName : "l1" ,
@@ -3643,16 +3651,6 @@ export const definitions: DefinitionWithExtend[] = [
36433651 access : "ALL" ,
36443652 } ) ,
36453653 heimanExtend . heimanClusterRadarDetectionRange ( ) ,
3646- m . numeric < "heimanClusterSpecial" , HeimanPrivateCluster > ( {
3647- name : "repeated_reporting_duration" ,
3648- unit : "minute(s)" ,
3649- valueMin : 0 ,
3650- valueMax : 65535 ,
3651- cluster : "heimanClusterSpecial" ,
3652- attribute : "occupiedToOccupiedDuration" ,
3653- description : "occupied repeated reporting duartion, 65535 indicates forever" ,
3654- access : "ALL" ,
3655- } ) ,
36563654 m . numeric < "heimanClusterSpecial" , HeimanPrivateCluster > ( {
36573655 name : "illuminance_threshold" ,
36583656 unit : "lx" ,
@@ -3682,17 +3680,18 @@ export const definitions: DefinitionWithExtend[] = [
36823680 } ) ,
36833681 heimanExtend . temperatureOffset ( ) ,
36843682 heimanExtend . humidityOffset ( ) ,
3685- m . enumLookup < "heimanClusterSpecial" , HeimanPrivateCluster > ( {
3683+ m . binary < "heimanClusterSpecial" , HeimanPrivateCluster > ( {
36863684 name : "learning_control" ,
3687- lookup : { start : 65534 , reset : 65535 } ,
3685+ valueOn : [ "start" , 65534 ] ,
3686+ valueOff : [ "reset" , 65535 ] ,
36883687 cluster : "heimanClusterSpecial" ,
36893688 attribute : "radarLearningControl" ,
36903689 description : "Radar learning mode, please wake up the device first." ,
36913690 access : "STATE_SET" ,
36923691 } ) ,
36933692 m . enumLookup < "heimanClusterSpecial" , HeimanPrivateCluster > ( {
36943693 name : "learning_state" ,
3695- lookup : { not : 0 , learning : 1 , completed : 2 , failed : 3 } ,
3694+ lookup : { normal : 0 , learning : 1 , completed : 2 , failed : 3 } ,
36963695 cluster : "heimanClusterSpecial" ,
36973696 attribute : "radarLearningState" ,
36983697 description : "radar learning state" ,
@@ -3713,4 +3712,57 @@ export const definitions: DefinitionWithExtend[] = [
37133712 ] ,
37143713 ota : true ,
37153714 } ,
3715+ {
3716+ zigbeeModel : [ "HM-5HA-E" , "HM-5HA-EF-3.0" ] ,
3717+ model : "HM-5HA-E" ,
3718+ vendor : "Heiman" ,
3719+ description : "Heat detector" ,
3720+ fromZigbee : [ fzLocal . heimanClusterSpecialfz ] ,
3721+ toZigbee : [ tz . warning ] ,
3722+ configure : async ( device , coordinatorEndpoint ) => {
3723+ const endpoint = device . getEndpoint ( 1 ) ;
3724+ await reporting . bind ( endpoint , coordinatorEndpoint , [ "genPowerCfg" , "heimanClusterSpecial" ] ) ;
3725+ await reporting . batteryPercentageRemaining ( endpoint ) ;
3726+ await endpoint . read ( "ssIasZone" , [ "zoneStatus" , "zoneState" , "iasCieAddr" , "zoneId" ] ) ;
3727+ await endpoint . read ( "msTemperatureMeasurement" , [ "measuredValue" ] ) ;
3728+ await endpoint . read < "heimanClusterSpecial" , HeimanPrivateCluster > (
3729+ "heimanClusterSpecial" ,
3730+ [
3731+ "sensorFaultState" ,
3732+ "deviceMuteControl" ,
3733+ "deviceMuteState" ,
3734+ "indicatorLightLevelControlOf1" ,
3735+ "interconnectable" ,
3736+ "temperatureOffset" ,
3737+ "rebootedCount" ,
3738+ "rejoinedCount" ,
3739+ "reportedPackages" ,
3740+ ] ,
3741+ {
3742+ manufacturerCode : Zcl . ManufacturerCode . HEIMAN_TECHNOLOGY_CO_LTD ,
3743+ } ,
3744+ ) ;
3745+ } ,
3746+ exposes : [ ] ,
3747+ extend : [
3748+ m . battery ( ) ,
3749+ m . identify ( ) ,
3750+ m . temperature ( ) ,
3751+ m . iasZoneAlarm ( { zoneType : "alarm" , zoneAttributes : [ "alarm_1" , "battery_low" , "test" , "tamper" ] } ) ,
3752+ heimanExtend . heimanClusterSpecial ( ) ,
3753+ heimanExtend . heimanClusterSensorFaultState ( ) ,
3754+ heimanExtend . heimanClusterDeviceMuteState ( ) ,
3755+ heimanExtend . iasZoneInitiateTestMode ( ) ,
3756+ heimanExtend . heimanClusterSensorMutable ( ) ,
3757+ heimanExtend . heimanClusterIndicatorLight ( ) ,
3758+ heimanExtend . heimanClusterSensorInterconnectable ( ) ,
3759+ heimanExtend . sirenForAutomationOnly ( ) ,
3760+ heimanExtend . temperatureOffset ( ) ,
3761+ heimanExtend . linkAvailable ( ) ,
3762+ heimanExtend . reportedPackages ( ) ,
3763+ heimanExtend . rejoinedCount ( ) ,
3764+ heimanExtend . rebootedCount ( ) ,
3765+ ] ,
3766+ ota : true ,
3767+ } ,
37163768] ;
0 commit comments