package org.openhab.binding.nikohomecontrol.internal.protocol.nhc1;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
/**
* Class {@link NhcMessageBase1} used as base class for output from gson for cmd or event feedback from Niko Home
@NonNullByDefault
abstract class NhcMessageBase1 {
- private String cmd = "";
- private String event = "";
+ private @Nullable String cmd;
+ private @Nullable String event;
String getCmd() {
- return cmd;
+ String cmd = this.cmd;
+ return ((cmd != null) ? cmd : "");
}
void setCmd(String cmd) {
}
String getEvent() {
- return event;
+ String event = this.event;
+ return ((event != null) ? event : "");
}
void setEvent(String event) {
package org.openhab.binding.nikohomecontrol.internal.protocol.nhc1;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
/**
* Class {@link NhcMessageCmd1} used as input to gson to send commands to Niko Home Control. Extends
@NonNullByDefault
class NhcMessageCmd1 extends NhcMessageBase1 {
- private int id;
- private int value1;
- private int value2;
- private int value3;
- private int mode;
- private int overrule;
- private String overruletime = "";
+ private @Nullable Integer id;
+ private @Nullable Integer value1;
+ private @Nullable Integer value2;
+ private @Nullable Integer value3;
+ private @Nullable Integer mode;
+ private @Nullable Integer overrule;
+ private @Nullable String overruletime;
NhcMessageCmd1(String cmd) {
super.setCmd(cmd);
nhcEventsRunning = true;
try {
- while (!listenerStopped & (nhcIn != null) & ((nhcMessage = nhcIn.readLine()) != null)) {
- readMessage(nhcMessage);
+ BufferedReader in = nhcIn;
+ if (in != null) {
+ while (!listenerStopped && ((nhcMessage = in.readLine()) != null)) {
+ readMessage(nhcMessage);
+ }
}
} catch (IOException e) {
if (!listenerStopped) {
import org.openhab.binding.nikohomecontrol.internal.protocol.NhcThermostat;
import org.openhab.binding.nikohomecontrol.internal.protocol.NikoHomeControlCommunication;
import org.openhab.binding.nikohomecontrol.internal.protocol.NikoHomeControlConstants.ActionType;
+import org.openhab.binding.nikohomecontrol.internal.protocol.nhc2.NhcDevice2.NhcParameter;
import org.openhab.binding.nikohomecontrol.internal.protocol.nhc2.NhcDevice2.NhcProperty;
import org.openhab.binding.nikohomecontrol.internal.protocol.nhc2.NhcMessage2.NhcMessageParam;
import org.openhab.core.io.transport.mqtt.MqttConnectionObserver;
private void addDevice(NhcDevice2 device) {
String location = null;
- if (device.parameters != null) {
- location = device.parameters.stream().map(p -> p.locationName).filter(Objects::nonNull).findFirst()
- .orElse(null);
+ List<NhcParameter> parameters = device.parameters;
+ if (parameters != null) {
+ location = parameters.stream().map(p -> p.locationName).filter(Objects::nonNull).findFirst().orElse(null);
}
if ("action".equals(device.type) || "virtual".equals(device.type)) {
switch (action.getType()) {
case GENERIC:
case TRIGGER:
- if (!NHCON.equals(value)) {
- // Only trigger for ON
- return;
- }
property.basicState = NHCTRIGGERED;
break;
case RELAY: