Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,11 @@ public String cmdToString(Command command) {
}
}

public Map<String, State> updateData(String channelID, String data) {
public Map<String, State> updateData(String channelID, @Nullable String data) {
Map<String, State> channelStates = new HashMap<>();
if (data == null) {
return channelStates;
}
Channel chan = getThing().getChannel(channelID);
if (chan != null) {
String acceptedItemType = chan.getAcceptedItemType();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.Map;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardException;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardMessageType;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
Expand Down Expand Up @@ -50,9 +51,29 @@ public void getTelemetry(String xmlResponse) throws HaywardException {

for (Backyard by : status.getBackyards()) {
if (sysId.equals(by.getSystemId())) {
updateData(HaywardBindingConstants.CHANNEL_BACKYARD_AIRTEMP, by.getAirTemp());
updateData(HaywardBindingConstants.CHANNEL_BACKYARD_STATUS, by.getStatus());
updateData(HaywardBindingConstants.CHANNEL_BACKYARD_STATE, by.getState());
@Nullable
String airTemp = by.getAirTemp();
if (airTemp != null) {
updateData(HaywardBindingConstants.CHANNEL_BACKYARD_AIRTEMP, airTemp);
} else {
logger.debug("Backyard air temperature missing");
}

@Nullable
String byStatus = by.getStatus();
if (byStatus != null) {
updateData(HaywardBindingConstants.CHANNEL_BACKYARD_STATUS, byStatus);
} else {
logger.debug("Backyard status missing");
}

@Nullable
String state = by.getState();
if (state != null) {
updateData(HaywardBindingConstants.CHANNEL_BACKYARD_STATE, state);
} else {
logger.debug("Backyard state missing");
}
}
}
updateStatus(ThingStatus.ONLINE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
package org.openhab.binding.haywardomnilogiclocal.internal.handler;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardBindingConstants;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardException;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
Expand Down Expand Up @@ -40,8 +41,14 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
String sysId = getThing().getUID().getId();
for (BodyOfWater bow : status.getBodiesOfWater()) {
if (sysId.equals(bow.getSystemId())) {
updateData(HaywardBindingConstants.CHANNEL_BOW_FLOW, bow.getFlow());
updateData(HaywardBindingConstants.CHANNEL_BOW_WATERTEMP, bow.getWaterTemp());
@Nullable String flow = bow.getFlow();
if (flow != null) {
updateData(HaywardBindingConstants.CHANNEL_BOW_FLOW, flow);
}
@Nullable String waterTemp = bow.getWaterTemp();
if (waterTemp != null) {
updateData(HaywardBindingConstants.CHANNEL_BOW_WATERTEMP, waterTemp);
}
}
}
updateStatus(ThingStatus.ONLINE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.Map;

import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardMessageType;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardException;
Expand Down Expand Up @@ -68,12 +69,35 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
}
for (Chlorinator c : status.getChlorinators()) {
if (sysId.equals(c.getSystemId())) {
updateData("chlorEnable", c.getOperatingState());
updateData("chlorOperatingMode", c.getOperatingMode());
updateData("chlorSaltOutput", c.getTimedPercent());
updateData("chlorAvgSaltLevel", c.getAvgSaltLevel());
updateData("chlorInstantSaltLevel", c.getInstantSaltLevel());
updateData("chlorStatus", c.getStatus());
@Nullable String operatingState = c.getOperatingState();
if (operatingState != null) {
updateData("chlorEnable", operatingState);
}

@Nullable String operatingMode = c.getOperatingMode();
if (operatingMode != null) {
updateData("chlorOperatingMode", operatingMode);
}

@Nullable String timedPercent = c.getTimedPercent();
if (timedPercent != null) {
updateData("chlorSaltOutput", timedPercent);
}

@Nullable String avgSaltLevel = c.getAvgSaltLevel();
if (avgSaltLevel != null) {
updateData("chlorAvgSaltLevel", avgSaltLevel);
}

@Nullable String instantSaltLevel = c.getInstantSaltLevel();
if (instantSaltLevel != null) {
updateData("chlorInstantSaltLevel", instantSaltLevel);
}

@Nullable String statusVal = c.getStatus();
if (statusVal != null) {
updateData("chlorStatus", statusVal);
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.Map;

import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardMessageType;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
import org.openhab.binding.haywardomnilogiclocal.internal.net.CommandBuilder;
Expand Down Expand Up @@ -62,8 +63,14 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
}
for (ColorLogicLight cl : status.getColorLogicLights()) {
if (sysId.equals(cl.getSystemId())) {
updateData("colorMode", cl.getCurrentShow());
updateData("brightness", cl.getBrightness());
@Nullable String currentShow = cl.getCurrentShow();
if (currentShow != null) {
updateData("colorMode", currentShow);
}
@Nullable String brightness = cl.getBrightness();
if (brightness != null) {
updateData("brightness", brightness);
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.Map;

import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardMessageType;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
import org.openhab.binding.haywardomnilogiclocal.internal.net.CommandBuilder;
Expand Down Expand Up @@ -68,10 +69,21 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
}
for (Filter f : status.getFilters()) {
if (sysId.equals(f.getSystemId())) {
updateData("filterEnable", f.getFilterState());
updateData("filterSpeed", f.getFilterSpeed());
updateData("filterState", f.getFilterState());
updateData("filterLastSpeed", f.getLastSpeed());
@Nullable String filterState = f.getFilterState();
if (filterState != null) {
updateData("filterEnable", filterState);
updateData("filterState", filterState);
}

@Nullable String filterSpeed = f.getFilterSpeed();
if (filterSpeed != null) {
updateData("filterSpeed", filterSpeed);
}

@Nullable String lastSpeed = f.getLastSpeed();
if (lastSpeed != null) {
updateData("filterLastSpeed", lastSpeed);
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.Map;

import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
import org.openhab.binding.haywardomnilogiclocal.internal.protocol.ParameterValue;
import org.openhab.binding.haywardomnilogiclocal.internal.telemetry.Heater;
Expand Down Expand Up @@ -35,9 +36,15 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
}
for (Heater h : status.getHeaters()) {
if (sysId.equals(h.getSystemId())) {
updateData("heaterState", h.getHeaterState());
String enable = "yes".equals(h.getEnable()) ? "1" : "0";
updateData("heaterEnable", enable);
@Nullable String heaterState = h.getHeaterState();
if (heaterState != null) {
updateData("heaterState", heaterState);
}
@Nullable String enableStr = h.getEnable();
if (enableStr != null) {
String enable = "yes".equals(enableStr) ? "1" : "0";
updateData("heaterEnable", enable);
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.Map;

import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardMessageType;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
import org.openhab.binding.haywardomnilogiclocal.internal.net.CommandBuilder;
Expand Down Expand Up @@ -68,10 +69,21 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
}
for (Pump p : status.getPumps()) {
if (sysId.equals(p.getSystemId())) {
updateData("pumpEnable", p.getPumpState());
updateData("pumpSpeed", p.getPumpSpeed());
updateData("pumpState", p.getPumpState());
updateData("pumpLastSpeed", p.getLastSpeed());
@Nullable String pumpState = p.getPumpState();
if (pumpState != null) {
updateData("pumpEnable", pumpState);
updateData("pumpState", pumpState);
}

@Nullable String pumpSpeed = p.getPumpSpeed();
if (pumpSpeed != null) {
updateData("pumpSpeed", pumpSpeed);
}

@Nullable String lastSpeed = p.getLastSpeed();
if (lastSpeed != null) {
updateData("pumpLastSpeed", lastSpeed);
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.util.Map;

import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardThingHandler;
import org.openhab.binding.haywardomnilogiclocal.internal.protocol.ParameterValue;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardException;
Expand Down Expand Up @@ -34,7 +35,10 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
}
for (Relay r : status.getRelays()) {
if (sysId.equals(r.getSystemId())) {
updateData("relayState", r.getRelayState());
@Nullable String relayState = r.getRelayState();
if (relayState != null) {
updateData("relayState", relayState);
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.util.Objects;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardBindingConstants;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardException;
import org.openhab.binding.haywardomnilogiclocal.internal.HaywardMessageType;
Expand Down Expand Up @@ -85,9 +86,20 @@ public void getTelemetry(String xmlResponse) throws HaywardException {
String sysId = getThing().getUID().getId();
for (VirtualHeater vh : status.getVirtualHeaters()) {
if (sysId.equals(vh.getSystemId())) {
updateData(HaywardBindingConstants.CHANNEL_VIRTUALHEATER_CURRENTSETPOINT, vh.getCurrentSetPoint());
String enable = "yes".equals(vh.getEnable()) ? "1" : "0";
updateData(HaywardBindingConstants.CHANNEL_VIRTUALHEATER_ENABLE, enable);
@Nullable String setPoint = vh.getCurrentSetPoint();
if (setPoint != null) {
updateData(HaywardBindingConstants.CHANNEL_VIRTUALHEATER_CURRENTSETPOINT, setPoint);
} else {
logger.debug("Virtual heater set point missing");
}

@Nullable String enableStr = vh.getEnable();
if (enableStr != null) {
String enable = "yes".equals(enableStr) ? "1" : "0";
updateData(HaywardBindingConstants.CHANNEL_VIRTUALHEATER_ENABLE, enable);
} else {
logger.debug("Virtual heater enable missing");
}
}
}
updateStatus(ThingStatus.ONLINE);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.openhab.binding.haywardomnilogiclocal.internal.telemetry;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
Expand All @@ -10,30 +11,30 @@
public class Backyard {
@XStreamAsAttribute
@XStreamAlias("systemId")
private String systemId;
private @Nullable String systemId;

@XStreamAsAttribute
private String airTemp;
private @Nullable String airTemp;

@XStreamAsAttribute
private String status;
private @Nullable String status;

@XStreamAsAttribute
private String state;
private @Nullable String state;

public String getSystemId() {
public @Nullable String getSystemId() {
return systemId;
}

public String getAirTemp() {
public @Nullable String getAirTemp() {
return airTemp;
}

public String getStatus() {
public @Nullable String getStatus() {
return status;
}

public String getState() {
public @Nullable String getState() {
return state;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.openhab.binding.haywardomnilogiclocal.internal.telemetry;

import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
Expand All @@ -10,25 +11,25 @@
public class BodyOfWater {
@XStreamAsAttribute
@XStreamAlias("systemId")
private String systemId;
private @Nullable String systemId;

@XStreamAsAttribute
@XStreamAlias("waterTemp")
private String waterTemp;
private @Nullable String waterTemp;

@XStreamAsAttribute
@XStreamAlias("flow")
private String flow;
private @Nullable String flow;

public String getSystemId() {
public @Nullable String getSystemId() {
return systemId;
}

public String getWaterTemp() {
public @Nullable String getWaterTemp() {
return waterTemp;
}

public String getFlow() {
public @Nullable String getFlow() {
return flow;
}
}
Loading