import static org.openhab.binding.irtrans.internal.IRtransBindingConstants.CHANNEL_IO;
-import org.apache.commons.lang3.StringUtils;
import org.openhab.binding.irtrans.internal.IRtransBindingConstants.Led;
import org.openhab.binding.irtrans.internal.IrCommand;
import org.openhab.core.library.types.StringType;
if (!(command instanceof RefreshType)) {
if (channelUID.getId().equals(CHANNEL_IO)) {
if (command instanceof StringType) {
- String remoteName = StringUtils.substringBefore(command.toString(), ",");
- String irCommandName = StringUtils.substringAfter(command.toString(), ",");
+ String[] remoteCommand = command.toString().split(",", 2);
+ if (remoteCommand.length < 2) {
+ logger.warn("Ignoring invalid command '{}'", command);
+ return;
+ }
IrCommand ircommand = new IrCommand();
- ircommand.setRemote(remoteName);
- ircommand.setCommand(irCommandName);
+ ircommand.setRemote(remoteCommand[0]);
+ ircommand.setCommand(remoteCommand[1]);
IrCommand thingCompatibleCommand = new IrCommand();
thingCompatibleCommand.setRemote((String) getConfig().get(REMOTE));
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.commons.lang3.StringUtils;
-import org.eclipse.jdt.annotation.NonNull;
import org.openhab.binding.irtrans.internal.IRtransBindingConstants;
import org.openhab.binding.irtrans.internal.IRtransBindingConstants.Led;
import org.openhab.binding.irtrans.internal.IrCommand;
import org.openhab.core.types.Command;
import org.openhab.core.types.RefreshType;
import org.openhab.core.util.HexUtils;
+import org.openhab.core.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
}
- public boolean registerTransceiverStatusListener(@NonNull TransceiverStatusListener transceiverStatusListener) {
+ public boolean registerTransceiverStatusListener(TransceiverStatusListener transceiverStatusListener) {
return transceiverStatusListeners.add(transceiverStatusListener);
}
- public boolean unregisterTransceiverStatusListener(@NonNull TransceiverStatusListener transceiverStatusListener) {
+ public boolean unregisterTransceiverStatusListener(TransceiverStatusListener transceiverStatusListener) {
return transceiverStatusListeners.remove(transceiverStatusListener);
}
if (channel.getChannelTypeUID() != null
&& channel.getChannelTypeUID().getId().equals(IRtransBindingConstants.BLASTER_CHANNEL_TYPE)) {
if (command instanceof StringType) {
- String remoteName = StringUtils.substringBefore(command.toString(), ",");
- String irCommandName = StringUtils.substringAfter(command.toString(), ",");
+ String[] remoteCommand = command.toString().split(",", 2);
+ if (remoteCommand.length < 2) {
+ logger.warn("Ignoring invalid command '{}'", command);
+ return;
+ }
IrCommand ircommand = new IrCommand();
- ircommand.setRemote(remoteName);
- ircommand.setCommand(irCommandName);
+ ircommand.setRemote(remoteCommand[0]);
+ ircommand.setCommand(remoteCommand[1]);
IrCommand thingCompatibleCommand = new IrCommand();
thingCompatibleCommand.setRemote((String) channelConfiguration.get(REMOTE));
if (response != null) {
String message = stripByteCount(response).split("\0")[0];
- if (message != null) {
- if (message.contains("VERSION")) {
- logger.info("'{}' matches an IRtrans device with firmware {}", getThing().getUID(), message);
- getConfig().put(FIRMWARE_VERSION, message);
- } else {
- logger.debug("Received some non-compliant garbage ({})", message);
- onConnectionLost();
- }
+ if (message.contains("VERSION")) {
+ logger.info("'{}' matches an IRtrans device with firmware {}", getThing().getUID(), message);
+ getConfig().put(FIRMWARE_VERSION, message);
+ } else {
+ logger.debug("Received some non-compliant garbage ({})", message);
+ onConnectionLost();
}
} else {
try {
if (response != null) {
String message = stripByteCount(response).split("\0")[0];
logger.trace("commands returned {}", message);
- if (message != null) {
- if (message.contains("COMMANDLIST")) {
- commandList = message.split(",");
- } else {
- logger.debug("Received some non-compliant command ({})", message);
- onConnectionLost();
- }
+ if (message.contains("COMMANDLIST")) {
+ commandList = message.split(",");
+ } else {
+ logger.debug("Received some non-compliant command ({})", message);
+ onConnectionLost();
}
} else {
logger.debug("Did not receive an answer from the IRtrans transceiver for '{}' - Parsing is skipped",
getThing().getUID());
onConnectionLost();
}
-
return commandList;
}
if (response != null) {
String message = stripByteCount(response).split("\0")[0];
logger.trace("remotes returned {}", message);
- if (message != null) {
- if (message.contains("REMOTELIST")) {
- remoteList = message.split(",");
- } else {
- logger.debug("Received some non-compliant command ({})", message);
- onConnectionLost();
- }
+ if (message.contains("REMOTELIST")) {
+ remoteList = message.split(",");
+ } else {
+ logger.debug("Received some non-compliant command ({})", message);
+ onConnectionLost();
}
} else {
logger.debug("Did not receive an answer from the IRtrans transceiver for '{}' - Parsing is skipped",
if (response != null) {
String message = stripByteCount(response).split("\0")[0];
- if (message != null && message.contains("RESULT OK")) {
+ if (message.contains("RESULT OK")) {
return true;
} else {
logger.debug("Received an unexpected response from the IRtrans transceiver: '{}'", message);