Thermostat card sending last value to mqtt climate

I am trying to update my TRV setpoint via MQTT. When I change the value on the thermostat card dial, the mqtt payload sent to the temperature command topic includes the last value for the target temperature, not the new one that I have changed it to.
This is my configuration yaml:

- name: "DressingArea_Setpoint"
  unique_id: "DressingArea_Setpoint"
  temperature_state_topic: "evogateway/main_stairs/ctl_controller/setpoint/setpoint"
  temperature_unit: C
  temp_step: 0.5
  max_temp: 21
  min_temp: 5
  optimistic: true
  modes: ["auto", "off", "heat"]
  # Possibly set preset modes?
  temperature_command_topic: "evogateway/_zone_independent/command"
  temperature_command_template: >
    {
    "dst_id": "01:155941,
    "command": "set_zone_mode",
    "zone_idx": "03",
    "mode": "advanced_override",
    "setpoint": {{state_attr('climate.dressingarea_setpoint', 'temperature')}}
    }

Is there a way to send the new value?

I have corrected this myself. The error was in my temperature_command_template - using the temperature state attribute of the entity rather than just the value. The configuration below works as expected:

- name: "ChrisOffice_TRV"
  unique_id: "ChrisOffice_TRV"
  current_temperature_topic: "evogatewayOHG/chris_office/trv_chris_office/temperature/temperature"
  temperature_state_topic: "evogatewayOHG/chris_office/ctl_controller/setpoint/setpoint"
  temperature_unit: C
  temp_step: 0.5
  max_temp: 21
  min_temp: 5
  optimistic: false
  modes: ["auto", "off", "heat"]
  temperature_command_topic: "evogatewayOHG/_zone_independent/command"
  temperature_command_template: >
    {"ctl_id":"01:164095",
    "command":"set_zone_mode",
    "zone_idx":"07",
    "mode":"advanced_override",
    "setpoint": {{float(value)}}}