Skip to content

Interaction beetween Setpoint Raise/Lower command and setpoint limit (TZ-1915) #683

@Antoni-Wizzdev

Description

@Antoni-Wizzdev

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.

Image

`
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)`

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions