diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatBindingConstants.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatBindingConstants.java index 0c1535941..87378b210 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatBindingConstants.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatBindingConstants.java @@ -31,30 +31,30 @@ public class VenstarThermostatBindingConstants { public static final String BINDING_ID = "venstarthermostat"; // List of all Thing Type UIDs - public final static ThingTypeUID THING_TYPE_COLOR_TOUCH = new ThingTypeUID(BINDING_ID, "colorTouchThermostat"); + public static final ThingTypeUID THING_TYPE_COLOR_TOUCH = new ThingTypeUID(BINDING_ID, "colorTouchThermostat"); - public final static Set SUPPORTED_THING_TYPES = Collections.singleton(THING_TYPE_COLOR_TOUCH); + public static final Set SUPPORTED_THING_TYPES = Collections.singleton(THING_TYPE_COLOR_TOUCH); // List of all Channel ids - public final static String CHANNEL_TEMPERATURE = "temperature"; - public final static String CHANNEL_HUMIDITY = "humidity"; - public final static String CHANNEL_EXTERNAL_TEMPERATURE = "outdoorTemperature"; + public static final String CHANNEL_TEMPERATURE = "temperature"; + public static final String CHANNEL_HUMIDITY = "humidity"; + public static final String CHANNEL_EXTERNAL_TEMPERATURE = "outdoorTemperature"; - public final static String CHANNEL_HEATING_SETPOINT = "heatingSetpoint"; - public final static String CHANNEL_COOLING_SETPOINT = "coolingSetpoint"; - public final static String CHANNEL_SYSTEM_STATE = "systemState"; - public final static String CHANNEL_SYSTEM_MODE = "systemMode"; - public final static String CHANNEL_SYSTEM_STATE_RAW = "systemStateRaw"; - public final static String CHANNEL_SYSTEM_MODE_RAW = "systemModeRaw"; - public final static String CHANNEL_AWAY_MODE = "awayMode"; - public final static String CHANNEL_AWAY_MODE_RAW = "awayModeRaw"; + public static final String CHANNEL_HEATING_SETPOINT = "heatingSetpoint"; + public static final String CHANNEL_COOLING_SETPOINT = "coolingSetpoint"; + public static final String CHANNEL_SYSTEM_STATE = "systemState"; + public static final String CHANNEL_SYSTEM_MODE = "systemMode"; + public static final String CHANNEL_SYSTEM_STATE_RAW = "systemStateRaw"; + public static final String CHANNEL_SYSTEM_MODE_RAW = "systemModeRaw"; + public static final String CHANNEL_AWAY_MODE = "awayMode"; + public static final String CHANNEL_AWAY_MODE_RAW = "awayModeRaw"; - public final static String CONFIG_USERNAME = "username"; - public final static String CONFIG_PASSWORD = "password"; - public final static String CONFIG_REFRESH = "refresh"; + public static final String CONFIG_USERNAME = "username"; + public static final String CONFIG_PASSWORD = "password"; + public static final String CONFIG_REFRESH = "refresh"; - public final static String PROPERTY_URL = "url"; - public final static String PROPERTY_UUID = "uuid"; + public static final String PROPERTY_URL = "url"; + public static final String PROPERTY_UUID = "uuid"; - public final static String REFRESH_INVALID = "refresh-invalid"; - public final static String EMPTY_INVALID = "empty-invalid"; + public static final String REFRESH_INVALID = "refresh-invalid"; + public static final String EMPTY_INVALID = "empty-invalid"; } diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatConfiguration.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatConfiguration.java index bf82b5b4f..d17563bd8 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatConfiguration.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatConfiguration.java @@ -12,15 +12,17 @@ */ package org.openhab.binding.venstarthermostat.internal; +import org.eclipse.jdt.annotation.NonNullByDefault; + /** * The {@link VenstarThermostatConfiguration} is responsible for holding configuration information. * * @author William Welliver - Initial contribution */ - +@NonNullByDefault public class VenstarThermostatConfiguration { - public String username; - public String password; - public String url; - public Integer refresh; + public String username = ""; + public String password = ""; + public String url = ""; + public Integer refresh = 30; } diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatHandlerFactory.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatHandlerFactory.java index 23e7790ea..092bb47a7 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatHandlerFactory.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/VenstarThermostatHandlerFactory.java @@ -37,7 +37,7 @@ import org.osgi.service.component.annotations.Component; @Component(service = ThingHandlerFactory.class, configurationPid = "binding.venstarthermostat") public class VenstarThermostatHandlerFactory extends BaseThingHandlerFactory { - private final static Set SUPPORTED_THING_TYPES_UIDS = Collections.singleton(THING_TYPE_COLOR_TOUCH); + private static final Set SUPPORTED_THING_TYPES_UIDS = Collections.singleton(THING_TYPE_COLOR_TOUCH); @Override public boolean supportsThingType(ThingTypeUID thingTypeUID) { @@ -46,7 +46,6 @@ public class VenstarThermostatHandlerFactory extends BaseThingHandlerFactory { @Override protected @Nullable ThingHandler createHandler(Thing thing) { - ThingTypeUID thingTypeUID = thing.getThingTypeUID(); if (thingTypeUID.equals(THING_TYPE_COLOR_TOUCH)) { diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/discovery/VenstarThermostatDiscoveryService.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/discovery/VenstarThermostatDiscoveryService.java index c2756fbb8..60c66153b 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/discovery/VenstarThermostatDiscoveryService.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/discovery/VenstarThermostatDiscoveryService.java @@ -29,6 +29,8 @@ import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.venstarthermostat.internal.VenstarThermostatBindingConstants; import org.openhab.core.config.discovery.AbstractDiscoveryService; import org.openhab.core.config.discovery.DiscoveryResult; @@ -47,6 +49,7 @@ import org.slf4j.LoggerFactory; * @author Dan Cunningham - Refactoring and Improvements */ +@NonNullByDefault @Component(service = DiscoveryService.class, configurationPid = "discovery.venstarthermostat") public class VenstarThermostatDiscoveryService extends AbstractDiscoveryService { private final Logger logger = LoggerFactory.getLogger(VenstarThermostatDiscoveryService.class); @@ -57,7 +60,7 @@ public class VenstarThermostatDiscoveryService extends AbstractDiscoveryService private static final String SSDP_MATCH = "colortouch:ecp"; private static final int BACKGROUND_SCAN_INTERVAL_SECONDS = 300; - private ScheduledFuture scheduledFuture = null; + private @Nullable ScheduledFuture scheduledFuture = null; public VenstarThermostatDiscoveryService() { super(VenstarThermostatBindingConstants.SUPPORTED_THING_TYPES, 30, true); @@ -67,14 +70,15 @@ public class VenstarThermostatDiscoveryService extends AbstractDiscoveryService protected void startBackgroundDiscovery() { logger.debug("Starting Background Scan"); stopBackgroundDiscovery(); - scheduledFuture = scheduler.scheduleAtFixedRate(this::doRunRun, 0, BACKGROUND_SCAN_INTERVAL_SECONDS, + scheduledFuture = scheduler.scheduleWithFixedDelay(this::doRunRun, 0, BACKGROUND_SCAN_INTERVAL_SECONDS, TimeUnit.SECONDS); } @Override protected void stopBackgroundDiscovery() { - if (scheduledFuture != null && !scheduledFuture.isCancelled()) { - scheduledFuture.cancel(true); + ScheduledFuture scheduledFutureLocal = scheduledFuture; + if (scheduledFutureLocal != null && !scheduledFutureLocal.isCancelled()) { + scheduledFutureLocal.cancel(true); } } @@ -112,7 +116,7 @@ public class VenstarThermostatDiscoveryService extends AbstractDiscoveryService * @throws SocketException * @throws UnsupportedEncodingException */ - private MulticastSocket sendDiscoveryBroacast(NetworkInterface ni) + private @Nullable MulticastSocket sendDiscoveryBroacast(NetworkInterface ni) throws UnknownHostException, SocketException, UnsupportedEncodingException { InetAddress m = InetAddress.getByName("239.255.255.250"); final int port = 1900; diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarAwayMode.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarAwayMode.java similarity index 90% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarAwayMode.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarAwayMode.java index 8a2c496da..589929bfc 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarAwayMode.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarAwayMode.java @@ -10,13 +10,13 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; /** * The {@link VenstarSystemMode} represents the value of the system mode returned * from the REST API. * - * @author Matthew Davies - created new class to add away mode to binding + * @author Matthew Davies - Initial contribution */ public enum VenstarAwayMode { HOME(0, "home", "Home"), diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarAwayModeSerializer.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarAwayModeSerializer.java similarity index 88% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarAwayModeSerializer.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarAwayModeSerializer.java index 2130d4b77..8ae818805 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarAwayModeSerializer.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarAwayModeSerializer.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; import java.lang.reflect.Type; @@ -23,7 +23,7 @@ import com.google.gson.JsonParseException; * The {@link VenstarSystemModeSerializer} parses system mode values * from the REST API JSON. * - * @author Matthew Davies - created new class to include away mode in binding + * @author Matthew Davies - Initial contribution */ public class VenstarAwayModeSerializer implements JsonDeserializer { @Override diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarInfoData.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarInfoData.java similarity index 97% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarInfoData.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarInfoData.java index 6d9aeaec8..b5a4aa954 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarInfoData.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarInfoData.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; /** * The {@link VenstarInfoData} represents a thermostat state from the REST API. diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarResponse.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarResponse.java similarity index 93% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarResponse.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarResponse.java index f3324ed9b..fe9045b18 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarResponse.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarResponse.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; /** * The {@link VenstarResponse} represents a response message from the REST API. diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSensor.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSensor.java similarity index 78% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSensor.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSensor.java index 6c4d75a26..77dc6e74c 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSensor.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSensor.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; /** * The {@link VenstarSensor} represents a sensor returned from the REST API. @@ -19,8 +19,8 @@ package org.openhab.binding.venstarthermostat.internal.model; */ public class VenstarSensor { String name; - float temp; - float hum; + double temp; + double hum; public String getName() { return name; @@ -30,19 +30,19 @@ public class VenstarSensor { this.name = name; } - public float getTemp() { + public double getTemp() { return temp; } - public void setTemp(float temp) { + public void setTemp(double temp) { this.temp = temp; } - public float getHum() { + public double getHum() { return hum; } - public void setHum(float hum) { + public void setHum(double hum) { this.hum = hum; } } diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSensorData.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSensorData.java similarity index 92% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSensorData.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSensorData.java index 216d17000..dad79fd45 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSensorData.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSensorData.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; import java.util.List; diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemMode.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemMode.java similarity index 95% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemMode.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemMode.java index 5e93aaaa6..680354958 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemMode.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemMode.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; /** * The {@link VenstarSystemMode} represents the value of the system mode returned diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemModeSerializer.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemModeSerializer.java similarity index 94% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemModeSerializer.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemModeSerializer.java index dc757134b..cbb3a104a 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemModeSerializer.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemModeSerializer.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; import java.lang.reflect.Type; diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemState.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemState.java similarity index 95% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemState.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemState.java index 9f75e168f..ec0e9e940 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemState.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemState.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; /** * The {@link VenstarSystemState} represents the value of the system state diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemStateSerializer.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemStateSerializer.java similarity index 94% rename from bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemStateSerializer.java rename to bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemStateSerializer.java index dbf2098ba..f7e1798d6 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/model/VenstarSystemStateSerializer.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/dto/VenstarSystemStateSerializer.java @@ -10,7 +10,7 @@ * * SPDX-License-Identifier: EPL-2.0 */ -package org.openhab.binding.venstarthermostat.internal.model; +package org.openhab.binding.venstarthermostat.internal.dto; import java.lang.reflect.Type; diff --git a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/handler/VenstarThermostatHandler.java b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/handler/VenstarThermostatHandler.java index 3e21f20f6..5041eaff9 100644 --- a/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/handler/VenstarThermostatHandler.java +++ b/bundles/org.openhab.binding.venstarthermostat/src/main/java/org/openhab/binding/venstarthermostat/internal/handler/VenstarThermostatHandler.java @@ -47,16 +47,16 @@ import org.eclipse.jetty.client.util.DigestAuthentication; import org.eclipse.jetty.http.HttpMethod; import org.eclipse.jetty.util.ssl.SslContextFactory; import org.openhab.binding.venstarthermostat.internal.VenstarThermostatConfiguration; -import org.openhab.binding.venstarthermostat.internal.model.VenstarAwayMode; -import org.openhab.binding.venstarthermostat.internal.model.VenstarAwayModeSerializer; -import org.openhab.binding.venstarthermostat.internal.model.VenstarInfoData; -import org.openhab.binding.venstarthermostat.internal.model.VenstarResponse; -import org.openhab.binding.venstarthermostat.internal.model.VenstarSensor; -import org.openhab.binding.venstarthermostat.internal.model.VenstarSensorData; -import org.openhab.binding.venstarthermostat.internal.model.VenstarSystemMode; -import org.openhab.binding.venstarthermostat.internal.model.VenstarSystemModeSerializer; -import org.openhab.binding.venstarthermostat.internal.model.VenstarSystemState; -import org.openhab.binding.venstarthermostat.internal.model.VenstarSystemStateSerializer; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarAwayMode; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarAwayModeSerializer; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarInfoData; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarResponse; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarSensor; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarSensorData; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarSystemMode; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarSystemModeSerializer; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarSystemState; +import org.openhab.binding.venstarthermostat.internal.dto.VenstarSystemStateSerializer; import org.openhab.core.config.core.status.ConfigStatusMessage; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.QuantityType; @@ -117,7 +117,6 @@ public class VenstarThermostatHandler extends ConfigStatusThingHandler { log.trace("VenstarThermostatHandler for thing {}", getThing().getUID()); } - @SuppressWarnings("null") // compiler does not see conf.refresh == null check @Override public Collection getConfigStatus() { Collection status = new ArrayList<>(); @@ -134,7 +133,7 @@ public class VenstarThermostatHandler extends ConfigStatusThingHandler { .withArguments(CONFIG_PASSWORD).build()); } - if (config.refresh == null || config.refresh < 10) { + if (config.refresh < 10) { log.warn("refresh is too small: {}", config.refresh); status.add(ConfigStatusMessage.Builder.error(CONFIG_REFRESH).withMessageKeySuffix(REFRESH_INVALID) @@ -145,7 +144,6 @@ public class VenstarThermostatHandler extends ConfigStatusThingHandler { @Override public void handleCommand(ChannelUID channelUID, Command command) { - if (getThing().getStatus() != ThingStatus.ONLINE) { log.debug("Controller is NOT ONLINE and is not responding to commands"); return; @@ -160,12 +158,12 @@ public class VenstarThermostatHandler extends ConfigStatusThingHandler { stateMap.remove(channelUID.getAsString()); if (channelUID.getId().equals(CHANNEL_HEATING_SETPOINT)) { QuantityType quantity = commandToQuantityType(command, unitSystem); - int value = quantityToRoundedTemperature(quantity, unitSystem).intValue(); + double value = quantityToRoundedTemperature(quantity, unitSystem).doubleValue(); log.debug("Setting heating setpoint to {}", value); setHeatingSetpoint(value); } else if (channelUID.getId().equals(CHANNEL_COOLING_SETPOINT)) { QuantityType quantity = commandToQuantityType(command, unitSystem); - int value = quantityToRoundedTemperature(quantity, unitSystem).intValue(); + double value = quantityToRoundedTemperature(quantity, unitSystem).doubleValue(); log.debug("Setting cooling setpoint to {}", value); setCoolingSetpoint(value); } else if (channelUID.getId().equals(CHANNEL_SYSTEM_MODE)) { @@ -298,20 +296,20 @@ public class VenstarThermostatHandler extends ConfigStatusThingHandler { return UnDefType.UNDEF; } - private void setCoolingSetpoint(int cool) { - int heat = getHeatingSetpoint().intValue(); + private void setCoolingSetpoint(double cool) { + double heat = getHeatingSetpoint().doubleValue(); VenstarSystemMode mode = getSystemMode(); updateControls(heat, cool, mode); } private void setSystemMode(VenstarSystemMode mode) { - int cool = getCoolingSetpoint().intValue(); - int heat = getHeatingSetpoint().intValue(); + double cool = getCoolingSetpoint().doubleValue(); + double heat = getHeatingSetpoint().doubleValue(); updateControls(heat, cool, mode); } - private void setHeatingSetpoint(int heat) { - int cool = getCoolingSetpoint().intValue(); + private void setHeatingSetpoint(double heat) { + double cool = getCoolingSetpoint().doubleValue(); VenstarSystemMode mode = getSystemMode(); updateControls(heat, cool, mode); } @@ -354,7 +352,7 @@ public class VenstarThermostatHandler extends ConfigStatusThingHandler { } } - private void updateControls(int heat, int cool, VenstarSystemMode mode) { + private void updateControls(double heat, double cool, VenstarSystemMode mode) { // this function corresponds to the thermostat local API POST /control instruction // the function can be expanded with other parameters which are changed via POST /control Map params = new HashMap<>(); @@ -503,7 +501,6 @@ public class VenstarThermostatHandler extends ConfigStatusThingHandler { return content; } catch (InterruptedException | TimeoutException | ExecutionException e) { throw new VenstarCommunicationException(e); - } }