diff --git a/Modules/heartbeat.py b/Modules/heartbeat.py index 065a3ef80..18a78534d 100755 --- a/Modules/heartbeat.py +++ b/Modules/heartbeat.py @@ -47,6 +47,7 @@ ReadAttributeRequest_0402, ReadAttributeRequest_0405, ReadAttributeRequest_0702_0000, + ReadAttributeRequest_0702_0017, ReadAttributeRequest_0702_PC321, ReadAttributeRequest_0702_ZLinky_TIC, ReadAttributeRequest_ff66, @@ -344,7 +345,9 @@ def pollingManufSpecificDevices(self, NwkId, HB): "HumiPollingFreq": ReadAttributeRequest_0405, "BattPollingFreq": ReadAttributeRequest_0001, "ZLinkyIndexes": ReadAttributeReq_Scheduled_ZLinky, # Based on a specific time - "ZLinkyPollingPTEC": ReadAttributeReq_Scheduled_ZLinky # Every 15' by default + "ZLinkyPollingPTEC": ReadAttributeReq_Scheduled_ZLinky, # Every 15' by default + "InletTempPolling": ReadAttributeRequest_0702_0017, # Retreive Inlet Temperature + } if "Param" not in self.ListOfDevices[NwkId]: diff --git a/Modules/readAttributes.py b/Modules/readAttributes.py index 9920351bb..0e40e3d2b 100644 --- a/Modules/readAttributes.py +++ b/Modules/readAttributes.py @@ -1333,6 +1333,16 @@ def ReadAttributeRequest_0702_0000(self, key): self.log.logging("ReadAttributes", "Debug", "Request Summation on 0x0702 cluster: " + key + " EPout = " + EPout, nwkid=key) ReadAttributeReq(self, key, ZIGATE_EP, EPout, "0702", listAttributes, ackIsDisabled=is_ack_tobe_disabled(self, key)) + +def ReadAttributeRequest_0702_0017(self, key): + # Cluster 0x0702 Metering / Specific 0x0017 (Device Temperature) + ListOfEp = getListOfEpForCluster(self, key, "0702") + for EPout in ListOfEp: + listAttributes = [0x0017] + self.log.logging("ReadAttributes", "Debug", "Request InletTemperature on 0x0702 cluster: " + key + " EPout = " + EPout, nwkid=key) + ReadAttributeReq(self, key, ZIGATE_EP, EPout, "0702", listAttributes, ackIsDisabled=is_ack_tobe_disabled(self, key)) + + def ReadAttributeRequest_0702_multiplier_divisor(self, key): ListOfEp = getListOfEpForCluster(self, key, "0702") for EPout in ListOfEp: diff --git a/Modules/tools.py b/Modules/tools.py index aea21b899..4ced7cdde 100644 --- a/Modules/tools.py +++ b/Modules/tools.py @@ -108,6 +108,10 @@ def getListOfEpForCluster(self, NwkId, SearchCluster): oldFashion = ( "ClusterType" in self.ListOfDevices[NwkId] and self.ListOfDevices[NwkId]["ClusterType"] not in ({}, "") ) for Ep in list(self.ListOfDevices[NwkId]["Ep"].keys()): + # check that is not a Fake Ep + if is_fake_ep(self, NwkId, Ep): + continue + if SearchCluster not in self.ListOfDevices[NwkId]["Ep"][Ep]: continue