use of org.openhab.binding.zwave.internal.protocol.SerialMessage in project openhab1-addons by openhab.
the class ZWaveThermostatSetpointCommandClass method setMessage.
/**
* Gets a SerialMessage with the THERMOSTAT_SETPOINT_SET command
*
* @param scale the scale (DegC or DegF)
* @param setpointType the setpoint type to set
* @param setpoint the setpoint to set.
* @return the serial message
*/
public SerialMessage setMessage(int scale, SetpointType setpointType, BigDecimal setpoint) {
logger.debug("NODE {}: Creating new message for command THERMOSTAT_SETPOINT_SET", this.getNode().getNodeId());
SerialMessage result = new SerialMessage(this.getNode().getNodeId(), SerialMessageClass.SendData, SerialMessageType.Request, SerialMessageClass.SendData, SerialMessagePriority.Set);
try {
byte[] encodedValue = encodeValue(setpoint);
byte[] payload = ArrayUtils.addAll(new byte[] { (byte) this.getNode().getNodeId(), (byte) (3 + encodedValue.length), (byte) getCommandClass().getKey(), THERMOSTAT_SETPOINT_SET, (byte) setpointType.getKey() }, encodedValue);
// Add the scale
payload[5] += (byte) (scale << 3);
result.setMessagePayload(payload);
return result;
} catch (ArithmeticException e) {
logger.error("NODE {}: Got an arithmetic exception converting value {} to a valid Z-Wave value. Ignoring THERMOSTAT_SETPOINT_SET message.", this.getNode().getNodeId(), setpoint);
return null;
}
}
use of org.openhab.binding.zwave.internal.protocol.SerialMessage in project openhab1-addons by openhab.
the class ZWaveDoorLockCommandClass method setValueMessage.
@Override
public SerialMessage setValueMessage(int value) {
logger.debug("NODE {}: Creating new message for application command DOORLOCK_SET", this.getNode().getNodeId());
SerialMessage result = new SerialMessage(this.getNode().getNodeId(), SerialMessageClass.SendData, SerialMessageType.Request, SerialMessageClass.SendData, SerialMessagePriority.Set);
byte[] newPayload = { (byte) this.getNode().getNodeId(), 3, (byte) getCommandClass().getKey(), (byte) DOORLOCK_SET, (byte) value };
result.setMessagePayload(newPayload);
return result;
}
use of org.openhab.binding.zwave.internal.protocol.SerialMessage in project openhab1-addons by openhab.
the class ZWaveDoorLockCommandClass method getValueMessage.
/**
* Gets a SerialMessage with the DOORLOCK_GET command
*
* @return the serial message
*/
@Override
public SerialMessage getValueMessage() {
logger.debug("NODE {}: Creating new message for application command DOORLOCK_GET", this.getNode().getNodeId());
SerialMessage result = new SerialMessage(this.getNode().getNodeId(), SerialMessageClass.SendData, SerialMessageType.Request, SerialMessageClass.ApplicationCommandHandler, SerialMessagePriority.Get);
byte[] newPayload = { (byte) this.getNode().getNodeId(), 2, (byte) getCommandClass().getKey(), (byte) DOORLOCK_GET };
result.setMessagePayload(newPayload);
return result;
}
use of org.openhab.binding.zwave.internal.protocol.SerialMessage in project openhab1-addons by openhab.
the class ZWaveIndicatorCommandClass method getValueMessage.
/**
* Gets a SerialMessage with the INDICATOR GET command
*
* @return the serial message
*/
@Override
public SerialMessage getValueMessage() {
if (isGetSupported == false) {
logger.debug("NODE {}: Node doesn't support get requests", this.getNode().getNodeId());
return null;
}
logger.debug("NODE {}: Creating new message for application command INDICATOR_GET", this.getNode().getNodeId());
SerialMessage result = new SerialMessage(this.getNode().getNodeId(), SerialMessageClass.SendData, SerialMessageType.Request, SerialMessageClass.ApplicationCommandHandler, SerialMessagePriority.Get);
byte[] newPayload = { (byte) this.getNode().getNodeId(), 2, (byte) getCommandClass().getKey(), (byte) INDICATOR_GET };
result.setMessagePayload(newPayload);
return result;
}
use of org.openhab.binding.zwave.internal.protocol.SerialMessage in project openhab1-addons by openhab.
the class ZWaveIndicatorCommandClass method setValueMessage.
/**
* Gets a SerialMessage with the INDICATOR SET command
*
* @param the level to set.
* @return the serial message
*/
@Override
public SerialMessage setValueMessage(int newIndicator) {
logger.debug("NODE {}: Creating new message for application command INDICATOR_SET", this.getNode().getNodeId());
SerialMessage result = new SerialMessage(this.getNode().getNodeId(), SerialMessageClass.SendData, SerialMessageType.Request, SerialMessageClass.SendData, SerialMessagePriority.Set);
byte[] newPayload = { (byte) this.getNode().getNodeId(), 3, (byte) getCommandClass().getKey(), (byte) INDICATOR_SET, (byte) newIndicator };
result.setMessagePayload(newPayload);
return result;
}
Aggregations