/* respond to device */
if (isBroadcast == false)
this.messageHandler.sendAck(thermStateMsg);
break;
case WALL_THERMOSTAT_STATE:
WallThermostatStateMsg wallThermStateMsg = new WallThermostatStateMsg(
data);
wallThermStateMsg.printMessage();
for (MaxCulBindingProvider provider : super.providers) {
Collection<MaxCulBindingConfig> bindingConfigs = provider
.getConfigsForRadioAddr(wallThermStateMsg.srcAddrStr);
for (MaxCulBindingConfig bc : bindingConfigs) {
String itemName = provider.getItemNameForConfig(bc);
if (bc.getFeature() == MaxCulFeature.THERMOSTAT
&& wallThermStateMsg.getDesiredTemperature() != null) {
eventPublisher.postUpdate(
itemName,
new DecimalType(wallThermStateMsg
.getDesiredTemperature()));
} else if (bc.getFeature() == MaxCulFeature.TEMPERATURE
&& wallThermStateMsg.getMeasuredTemperature() != null) {
eventPublisher.postUpdate(
itemName,
new DecimalType(wallThermStateMsg
.getMeasuredTemperature()));
} else if (bc.getFeature() == MaxCulFeature.BATTERY) {
eventPublisher
.postUpdate(itemName, wallThermStateMsg
.getBatteryLow() ? OnOffType.ON
: OnOffType.OFF);
} else if (bc.getFeature() == MaxCulFeature.MODE) {
eventPublisher.postUpdate(itemName,
new DecimalType(wallThermStateMsg
.getControlMode().toInt()));
}
}
}
/* respond to device */