-
Notifications
You must be signed in to change notification settings - Fork 54
Description
Question
I'm currently preparing device for certification and run into an issue regarding thermostat cluster while using ZUTH with test harness. Inside test TSTAT-TC-02S steps 14d and 14e attempts to use Setpoint Raise/Lower command to lower the OccupiedHeatingSetpoint by 3 degrees and if the value lands below value of MinHeatSetpointLimit it expects the OccupiedHeatingSetpoint to be set equal to MinHeatlSetpointLimit. Is Setpoint Raise/Lower command supposed to work like that according to the standard? I attempted to find some information about this but could not find anything pointing to this being the intended functionality. I'm asking because the current esp-zigbee-sdk instead of setting the setpoint to minimum returns information about invalid value. I'm wondering if the error lies on the side of sdk or the test script. Bellow is a screenshots of the ZUTH output and relevant part of the test script.

`
print_step_info('14d', 'TH CLIENT unicast a setpoint raise/lower command frame of the thermostat cluster to DUT SERVER with:'
'\n- mode field set to Heat (0x00)'
'\n- amount field set to 0xE2 (-30 units = -3 degrees)')
status, response = zcl_command(Zcl, dut,
zcl_tstat.SetpointRaiseOrLower(Mode=0x00, Amount=-30),
default_rsp,
zclStatus.SUCCESS)
autoDUT.prompt_wait(5)
##########################
# mode fields supported
##########################
# 0x00 Heat (adjust Heat Setpoint)
# 0x01 Cool (adjust Cool Setpoint)
# 0x02 Both (adjust Heat Setpoint and Cool Setpoint)
# Adjust the heat set point Mode 0
# The amount needs to be in range, it cannot be any arbitrary value
OccupiedHeatingSetpoint,min_value,max_value = self.get_attribute_limits("OccupiedHeatingSetpoint",PICS_ITEMS)
# check if the expected value after the adjustment will be less than the maximum allowed
if ( OccupiedHeatingSetpoint - 300 ) < min_value:
expected_reading = min_value
else:
expected_reading = OccupiedHeatingSetpoint-300 # -30 needs to be scalated
print_step_info('14e', 'TH CLIENT unicast a ZCL read attributes command frame to DUT SERVER to read the OccupiedHeatingSetpoint attribute.')
# attribute_objs = [{KEY_ATTR_OBJ: zcl_tstat.OccupiedHeatingSetpoint, KEY_ATTR_VAL: 0x06A4}]
attribute_objs = [{KEY_ATTR_OBJ: zcl_tstat.OccupiedHeatingSetpoint, KEY_ATTR_VAL: expected_reading}]
step_14e = self.read_attribute_tracker(Zcl, dut, tstat_cluster_id, attribute_objs)`