/**
* Copyright (c) 2010-2016 by the respective copyright holders.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.openhab.binding.heatmiser.internal.thermostat;
import org.openhab.core.items.Item;
import org.openhab.core.types.Command;
import org.openhab.core.types.State;
/**
* Thermostat class for the PRTHW thermostat (Programmable Room Thermostat - Hot Water)
* Most functions are handled by the base class
*
* @author Chris Jackson
* @since 1.4.0
*
*/
public class HeatmiserPRTHW extends HeatmiserThermostat {
@Override
public boolean setData(byte in[]) {
if (super.setData(in) == false) {
return false;
}
dcbState = data[30];
dcbHeatState = data[44];
dcbFrostTemperature = data[26];
dcbRoomTemperature = getTemp(41);
dcbSetTemperature = data[27];
dcbHolidayTime = (data[34] & 0xFF) + ((data[33] & 0xFF) * 256);
dcbHoldTime = (data[36] & 0xFF) + ((data[35] & 0xFF) * 256);
dcbWaterState = data[45];
return true;
}
@Override
public State getFloorTemperature(Class<? extends Item> itemType) {
return null;
}
private byte[] setWaterState(Command command) {
byte[] cmdByte = new byte[1];
if (command.toString().contentEquals("ON")) {
cmdByte[0] = 1;
} else {
cmdByte[0] = 0;
}
return makePacket(true, 42, 1, cmdByte);
}
@Override
public byte[] formatCommand(Functions function, Command command) {
switch (function) {
case WATERSTATE:
return setWaterState(command);
default:
// Default to calling the parent class.
return super.formatCommand(function, command);
}
}
}