Following from the resounding success of my last question, here's another!
Same thermostat system as before, and the receiver (which attaches to the boiler) is available in a heating-only or a heating-and-hot-water variant. I have both to hand and they operate each channel by simply having heating on endpoint 5 and water on endpoint 6. Control and reporting is identical between the two endpoints, except the setpoint for water isn't used.
However, while I can bind to and receive reports from endpoint 5, this doesn't work for endpoint 6. Here's what I'm doing in the configure() method.
String modelCheck = "${getDeviceDataByName('model')}"
device.name = "Hive Receiver ${modelCheck}"
setThermostatDateAndTime()
// Reporting
// These had to be constructed manually as configureReporting seemed to ignore the [destEndpoint:0x06] additional parameter.
// NOTE! Though the water (endpoint 0x06) configuration is reported as successful, the behaviour doesn't match heating (endpoint 0x05).
// On early firmware some values were reported correctly, but on the latest firmware this doesn't appear to be the case.
sendZigbeeCommands([
"zdo bind 0x${device.deviceNetworkId} 0x05 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x05 0x0201 0x0012 0x29 1 43200 {} {}, delay 8000", // OccupiedHeatingSetpoint
"zdo bind 0x${device.deviceNetworkId} 0x05 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x05 0x0201 0x001C 0x30 1 43200 {} {}, delay 2000", // SystemMode (Heating)
"zdo bind 0x${device.deviceNetworkId} 0x05 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x05 0x0201 0x0023 0x30 1 43200 {} {}, delay 2000", // TemperatureSetpointHold (Heating)
"zdo bind 0x${device.deviceNetworkId} 0x05 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x05 0x0201 0x0024 0x21 1 43200 {} {}, delay 2000", // TemperatureSetpointHoldDuration (Heating)
"zdo bind 0x${device.deviceNetworkId} 0x05 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x05 0x0201 0x0029 0x19 1 43200 {} {}, delay 8000", // ThermostatRunningState (Heating)
"zdo bind 0x${device.deviceNetworkId} 0x06 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x06 0x0201 0x001C 0x30 1 43200 {} {}, delay 2000", // SystemMode (Water)
"zdo bind 0x${device.deviceNetworkId} 0x06 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x06 0x0201 0x0023 0x30 1 43200 {} {}, delay 2000", // TemperatureSetpointHold (Water)
"zdo bind 0x${device.deviceNetworkId} 0x06 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x06 0x0201 0x0024 0x21 1 43200 {} {}, delay 2000", // TemperatureSetpointHoldDuration (Water)
"zdo bind 0x${device.deviceNetworkId} 0x06 0x01 0x0201 {${device.zigbeeId}} {}, delay 2000",
"he cr 0x${device.deviceNetworkId} 0x06 0x0201 0x0029 0x19 1 43200 {} {}, delay 2000" // ThermostatRunningState (Water)
])
ArrayList<String> cmds = []
cmds += zigbee.configureReporting(0x0201, 0x0000, 0x29, 1, 60) // Temperature Reporting
sendZigbeeCommands(cmds)
After that I'm merrily receiving heating reports on 5, but nothing on 6. I haven't tried resetting things and just requesting binds on 6, basically because that's more of a faff than asking this question.
Is there any reason from a Hubitat perspective that this shouldn't be working? Or is it something I just have to live with, as I can poll for values if necessary. I just don't really want to, as it's much nicer for it to report in itself.