Wow the CLI is easier than I expected. Nice. Here’s some output:
First, in the app, manually change the set temp of the thermostat to 70 (up from 68). This succeeded:
2026-02-08T23:53:05.519835382Z TRACE Z-Wave Thermostat Received event with handler capability
2026-02-08T23:53:05.521540465Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> received command: {"args":{"setpoint":21.11111111111111},"capability":"thermostatHeatingSetpoint","command":"setHeatingSetpoint","component":"main","named_args":{"setpoint":21.11111111111111},"positional_args":[21.11111111111111]}
2026-02-08T23:53:05.540634090Z TRACE Z-Wave Thermostat Found CapabilityCommandDispatcher handler in zwave_thermostat
2026-02-08T23:53:05.542573382Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> sending Z-Wave command: {args={scale="FAHRENHEIT", setpoint_type="HEATING_1", value=70}, cmd_class="THERMOSTAT_SETPOINT", cmd_id="SET", dst_channels={}, encap="AUTO", payload="\x01\x09\x46", src_channel=0, version=1}
2026-02-08T23:53:05.545411174Z TRACE Z-Wave Thermostat Z-Wave command(d9253379) queued for radio transmission: CC:Thermostat Setpoint, CID:0x01
2026-02-08T23:53:05.549498757Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
2026-02-08T23:53:05.550355424Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
2026-02-08T23:53:06.563460091Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> sending Z-Wave command: {args={setpoint_type="HEATING_1"}, cmd_class="THERMOSTAT_SETPOINT", cmd_id="GET", dst_channels={}, encap="AUTO", payload="\x01", src_channel=0, version=1}
2026-02-08T23:53:06.566140674Z TRACE Z-Wave Thermostat Z-Wave command(0dd2770f) queued for radio transmission: CC:Thermostat Setpoint, CID:0x02
2026-02-08T23:53:06.568125841Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
2026-02-08T23:53:07.322564924Z TRACE Z-Wave Thermostat Z-Wave command(d9253379) transmit status: TRANSMIT_COMPLETE_OK
2026-02-08T23:53:07.573096507Z TRACE Z-Wave Thermostat Z-Wave command(0dd2770f) transmit status: TRANSMIT_COMPLETE_OK
2026-02-08T23:53:07.583766424Z TRACE Z-Wave Thermostat Received event with handler unnamed
2026-02-08T23:53:07.587544341Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> received Z-Wave command: {args={precision=1, scale="FAHRENHEIT", setpoint_type="HEATING_1", size=2, value=70.0}, cmd_class="THERMOSTAT_SETPOINT", cmd_id="REPORT", dst_channels={}, encap="S2_UNAUTH", payload="\x01\x2A\x02\xBC", src_channel=0, version=1}
2026-02-08T23:53:07.591238257Z TRACE Z-Wave Thermostat Found ZwaveDispatcher handler in zwave_thermostat
2026-02-08T23:53:07.592680507Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> emitting event: {"attribute_id":"heatingSetpoint","capability_id":"thermostatHeatingSetpoint","component_id":"main","state":{"unit":"F","value":70.0}}
2026-02-08T23:53:07.602161007Z TRACE Z-Wave Thermostat Found ZwaveDispatcher handler in zwave_thermostat
2026-02-08T23:53:07.602735049Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
2026-02-08T23:54:29.015446434Z TRACE Z-Wave Thermostat Received event with handler unnamed
2026-02-08T23:54:29.022328850Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> received Z-Wave command: {args={precision=1, scale="PERCENTAGE", sensor_type="RELATIVE_HUMIDITY", sensor_value=54.0, size=2}, cmd_class="SENSOR_MULTILEVEL", cmd_id="REPORT", dst_channels={}, encap="S2_UNAUTH", payload="\x05\x22\x02\x1C", src_channel=0, version=1}
2026-02-08T23:54:29.024842142Z TRACE Z-Wave Thermostat Found ZwaveDispatcher handler in zwave_thermostat
2026-02-08T23:54:29.027757392Z TRACE Z-Wave Thermostat Found ZwaveDispatcher handler in zwave_thermostat
2026-02-08T23:54:29.028981434Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> emitting event: {"attribute_id":"humidity","capability_id":"relativeHumidityMeasurement","component_id":"main","state":{"value":54}}
2026-02-08T23:54:29.037755684Z TRACE Z-Wave Thermostat Found ZwaveDispatcher handler in zwave_thermostat
2026-02-08T23:54:29.038333184Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
Next, use a test routine to set the temp to 75. Schedule the routine to run one minute later. This failed; the set temp is still 70:
2026-02-08T23:55:00.019637062Z TRACE Z-Wave Thermostat Received event with handler capability
2026-02-08T23:55:00.020317687Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> received command: {"args":{"setpoint":23.88888888888889},"capability":"thermostatHeatingSetpoint","command":"setHeatingSetpoint","component":"main","named_args":{"setpoint":23.88888888888889},"positional_args":[23.88888888888889]}
2026-02-08T23:55:00.036420854Z TRACE Z-Wave Thermostat Found CapabilityCommandDispatcher handler in zwave_thermostat
2026-02-08T23:55:00.038590979Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> sending Z-Wave command: {args={scale="FAHRENHEIT", setpoint_type="HEATING_1", value=75}, cmd_class="THERMOSTAT_SETPOINT", cmd_id="SET", dst_channels={}, encap="AUTO", payload="\x01\x09\x4B", src_channel=0, version=1}
2026-02-08T23:55:00.042071354Z TRACE Z-Wave Thermostat Z-Wave command(980e9675) queued for radio transmission: CC:Thermostat Setpoint, CID:0x01
2026-02-08T23:55:00.047866021Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
2026-02-08T23:55:00.049312396Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
2026-02-08T23:55:01.051215313Z TRACE Z-Wave Thermostat Z-Wave command(ac4c636b) queued for radio transmission: CC:Thermostat Setpoint, CID:0x02
2026-02-08T23:55:01.052044688Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> sending Z-Wave command: {args={setpoint_type="HEATING_1"}, cmd_class="THERMOSTAT_SETPOINT", cmd_id="GET", dst_channels={}, encap="AUTO", payload="\x01", src_channel=0, version=1}
2026-02-08T23:55:01.054126688Z DEBUG Z-Wave Thermostat BR Heater device thread event handled
2026-02-08T23:55:01.562436438Z TRACE Z-Wave Thermostat Z-Wave command(980e9675) transmit status: TRANSMIT_COMPLETE_OK
2026-02-08T23:55:01.952689313Z TRACE Z-Wave Thermostat Z-Wave command(ac4c636b) transmit status: TRANSMIT_COMPLETE_FAIL
2026-02-08T23:55:07.114327313Z INFO Z-Wave Thermostat hub handled ZwaveCommand { encap: "S2_UNAUTH", src_chan: 0, dst_chans: [], cmd_class: 0x31, cmd_code: 0x5, payload: [0x01, 0x2A, 0x03, 0x02] }
2026-02-08T23:55:07.115632480Z INFO Z-Wave Thermostat hub emitting event 77..c5: {"component_id":"main","capability_id":"temperatureMeasurement","attribute_id":"temperature","state":{"value":77.0,"unit":"F"}}
2026-02-08T23:55:07.126166980Z TRACE Z-Wave Thermostat Received event with handler device_lifecycle
2026-02-08T23:55:07.126631480Z INFO Z-Wave Thermostat <ZwaveDevice: 77..c5 [14] (BR Heater)> received lifecycle event: update
I see the TRANSMIT-COMPLETE_FAIL but why did it fail? What does TRANSMIT_COMPLETE_OK mean when followed by another TRANSMIT_COMPLETE_OK, or by TRANSMIT_COMPLETE_FAIL? Is it normal to have S2_UNAUTH in there?