There’s a bug in the default zwave capability handlers for ThermostatCoolingSetpoint.setCoolingSetpoint and ThermostatHeatingSetpoint.setHeatingSetpoint. The code for both assumes that the setpoint passed to it is in Celsius, and then converts the setpoint to Fahrenheit if the device has indicated it uses F. My location is set to F, so the app is sending setpoint in F to the handler. The handler is then pretending that that F temperature is C and converting it to F. For example, in the logs below it’s treating 74F as if it’s 74C, then converting that to 165F.
2021-10-31T13:33:30.950709179+00:00 INFO Z-Wave Thermostat <ZwaveDevice: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx [5B] (Trane Thermostat)> received command: {"command":"setCoolingSetpoint","args":{"setpoint":74},"positional_args":[74],"capability":"thermostatCoolingSetpoint","component":"main"}
2021-10-31T13:33:30.965758179+00:00 INFO Z-Wave Thermostat <ZwaveDevice: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx [5B] (Trane Thermostat)> sending Z-Wave command: {args={scale="FAHRENHEIT", setpoint_type="COOLING_1", value=165}, cmd_class="THERMOSTAT_SETPOINT", cmd_id="SET", dst_channels={}, encap="AUTO", payload="\x02\x0A\x00\xA5", src_channel=0, version=1}