From: lsiepel Date: Mon, 9 Sep 2024 19:21:37 +0000 (+0200) Subject: [melcloud] Improve null handling (#17295) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=d2d2e6301678bb176835536472a5be3e46876714;p=openhab-addons.git [melcloud] Improve null handling (#17295) * Add null annotations Signed-off-by: Leo Siepel --- diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudBindingConstants.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudBindingConstants.java index 6971de6aea..a4b556adf0 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudBindingConstants.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudBindingConstants.java @@ -17,6 +17,7 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.thing.ThingTypeUID; /** @@ -26,6 +27,7 @@ import org.openhab.core.thing.ThingTypeUID; * @author Luca Calcaterra - Initial contribution * @author Wietse van Buitenen - Added heatpump device */ +@NonNullByDefault public class MelCloudBindingConstants { private static final String BINDING_ID = "melcloud"; diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudHandlerFactory.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudHandlerFactory.java index 65f55993dc..67fe1127a9 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudHandlerFactory.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/MelCloudHandlerFactory.java @@ -14,6 +14,7 @@ package org.openhab.binding.melcloud.internal; import static org.openhab.binding.melcloud.internal.MelCloudBindingConstants.*; +import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.melcloud.internal.handler.MelCloudAccountHandler; import org.openhab.binding.melcloud.internal.handler.MelCloudDeviceHandler; @@ -33,6 +34,7 @@ import org.osgi.service.component.annotations.Component; * @author Luca Calcaterra - Initial contribution * @author Wietse van Buitenen - Added heatpump device */ +@NonNullByDefault @Component(configurationPid = "binding.melcloud", service = ThingHandlerFactory.class) public class MelCloudHandlerFactory extends BaseThingHandlerFactory { diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/MelCloudConnection.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/MelCloudConnection.java index 5733a26206..7343d1038f 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/MelCloudConnection.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/MelCloudConnection.java @@ -19,13 +19,15 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; import java.util.Properties; -import org.openhab.binding.melcloud.internal.api.json.Device; -import org.openhab.binding.melcloud.internal.api.json.DeviceStatus; -import org.openhab.binding.melcloud.internal.api.json.HeatpumpDeviceStatus; -import org.openhab.binding.melcloud.internal.api.json.ListDevicesResponse; -import org.openhab.binding.melcloud.internal.api.json.LoginClientResponse; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.binding.melcloud.internal.api.dto.Device; +import org.openhab.binding.melcloud.internal.api.dto.DeviceStatus; +import org.openhab.binding.melcloud.internal.api.dto.HeatpumpDeviceStatus; +import org.openhab.binding.melcloud.internal.api.dto.ListDevicesResponse; +import org.openhab.binding.melcloud.internal.api.dto.LoginClientResponse; import org.openhab.binding.melcloud.internal.exceptions.MelCloudCommException; import org.openhab.binding.melcloud.internal.exceptions.MelCloudLoginException; import org.openhab.core.io.net.http.HttpUtil; @@ -45,6 +47,7 @@ import com.google.gson.JsonSyntaxException; * @author Pauli Anttila - Refactoring * @author Wietse van Buitenen - Return all devices, added heatpump device */ +@NonNullByDefault public class MelCloudConnection { private static final String LOGIN_URL = "https://app.melcloud.com/Mitsubishi.Wifi.Client/Login/ClientLogin"; @@ -54,18 +57,18 @@ public class MelCloudConnection { private static final int TIMEOUT_MILLISECONDS = 10000; // Gson objects are safe to share across threads and are somewhat expensive to construct. Use a single instance. - private static final Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation() + private static final Gson GSON = new GsonBuilder().excludeFieldsWithoutExposeAnnotation() .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE).create(); private final Logger logger = LoggerFactory.getLogger(MelCloudConnection.class); private boolean isConnected = false; - private String sessionKey; + private String sessionKey = ""; public void login(String username, String password, int languageId) throws MelCloudCommException, MelCloudLoginException { setConnected(false); - sessionKey = null; + sessionKey = ""; JsonObject jsonReq = new JsonObject(); jsonReq.addProperty("Email", username); jsonReq.addProperty("Password", password); @@ -79,7 +82,7 @@ public class MelCloudConnection { String loginResponse = HttpUtil.executeUrl("POST", LOGIN_URL, null, data, "application/json", TIMEOUT_MILLISECONDS); logger.debug("Login response: {}", loginResponse); - LoginClientResponse resp = gson.fromJson(loginResponse, LoginClientResponse.class); + LoginClientResponse resp = Objects.requireNonNull(GSON.fromJson(loginResponse, LoginClientResponse.class)); if (resp.getErrorId() != null) { String errorMsg = String.format("Login failed, error code: %s", resp.getErrorId()); if (resp.getErrorMessage() != null) { @@ -101,7 +104,7 @@ public class MelCloudConnection { TIMEOUT_MILLISECONDS); logger.debug("Device list response: {}", response); List devices = new ArrayList<>(); - ListDevicesResponse[] buildings = gson.fromJson(response, ListDevicesResponse[].class); + ListDevicesResponse[] buildings = GSON.fromJson(response, ListDevicesResponse[].class); Arrays.asList(buildings).forEach(building -> { if (building.getStructure().getDevices() != null) { devices.addAll(building.getStructure().getDevices()); @@ -137,7 +140,7 @@ public class MelCloudConnection { try { String response = HttpUtil.executeUrl("GET", url, getHeaderProperties(), null, null, TIMEOUT_MILLISECONDS); logger.debug("Device status response: {}", response); - return gson.fromJson(response, DeviceStatus.class); + return Objects.requireNonNull(GSON.fromJson(response, DeviceStatus.class)); } catch (IOException | JsonSyntaxException e) { setConnected(false); throw new MelCloudCommException("Error occurred during device status fetch", e); @@ -146,14 +149,14 @@ public class MelCloudConnection { public DeviceStatus sendDeviceStatus(DeviceStatus deviceStatus) throws MelCloudCommException { assertConnected(); - String content = gson.toJson(deviceStatus, DeviceStatus.class); + String content = GSON.toJson(deviceStatus, DeviceStatus.class); logger.debug("Sending device status: {}", content); InputStream data = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)); try { String response = HttpUtil.executeUrl("POST", DEVICE_URL + "/SetAta", getHeaderProperties(), data, "application/json", TIMEOUT_MILLISECONDS); logger.debug("Device status sending response: {}", response); - return gson.fromJson(response, DeviceStatus.class); + return Objects.requireNonNull(GSON.fromJson(response, DeviceStatus.class)); } catch (IOException | JsonSyntaxException e) { setConnected(false); throw new MelCloudCommException("Error occurred during device command sending", e); @@ -166,7 +169,7 @@ public class MelCloudConnection { try { String response = HttpUtil.executeUrl("GET", url, getHeaderProperties(), null, null, TIMEOUT_MILLISECONDS); logger.debug("Device heatpump status response: {}", response); - return gson.fromJson(response, HeatpumpDeviceStatus.class); + return Objects.requireNonNull(GSON.fromJson(response, HeatpumpDeviceStatus.class)); } catch (IOException | JsonSyntaxException e) { setConnected(false); throw new MelCloudCommException("Error occurred during heatpump device status fetch", e); @@ -176,14 +179,14 @@ public class MelCloudConnection { public HeatpumpDeviceStatus sendHeatpumpDeviceStatus(HeatpumpDeviceStatus heatpumpDeviceStatus) throws MelCloudCommException { assertConnected(); - String content = gson.toJson(heatpumpDeviceStatus, HeatpumpDeviceStatus.class); + String content = GSON.toJson(heatpumpDeviceStatus, HeatpumpDeviceStatus.class); logger.debug("Sending heatpump device status: {}", content); InputStream data = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)); try { String response = HttpUtil.executeUrl("POST", DEVICE_URL + "/SetAtw", getHeaderProperties(), data, "application/json", TIMEOUT_MILLISECONDS); logger.debug("Device heatpump status sending response: {}", response); - return gson.fromJson(response, HeatpumpDeviceStatus.class); + return Objects.requireNonNull(GSON.fromJson(response, HeatpumpDeviceStatus.class)); } catch (IOException | JsonSyntaxException e) { setConnected(false); throw new MelCloudCommException("Error occurred during heatpump device command sending", e); diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Area.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Area.java new file mode 100644 index 0000000000..8167b039c5 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Area.java @@ -0,0 +1,148 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * {@link Area} provides area specific information for JSON data returned from MELCloud API + * Area Data + * Generated with jsonschema2pojo + * + * @author Wietse van Buitenen - Initial contribution + */ +public class Area { + + @Expose + private Integer iD; + + @Expose + private String name; + + @Expose + private Integer buildingId; + + @Expose + private Integer floorId; + + @Expose + private Integer accessLevel; + + @Expose + private Boolean directAccess; + + @Expose + private Object endDate; + + @Expose + private Integer minTemperature; + + @Expose + private Integer maxTemperature; + + @Expose + private Boolean expanded; + + @Expose + private List devices = null; + + public Integer getID() { + return iD; + } + + public void setID(Integer iD) { + this.iD = iD; + } + + public Integer getBuildingId() { + return buildingId; + } + + public void setBuildingId(Integer buildingId) { + this.buildingId = buildingId; + } + + public Integer getFloorId() { + return floorId; + } + + public void setFloorId(Integer floorId) { + this.floorId = floorId; + } + + public Integer getAccessLevel() { + return accessLevel; + } + + public void setAccessLevel(Integer accessLevel) { + this.accessLevel = accessLevel; + } + + public Boolean getDirectAccess() { + return directAccess; + } + + public void setDirectAccess(Boolean directAccess) { + this.directAccess = directAccess; + } + + public Object getEndDate() { + return endDate; + } + + public void setEndDate(Object endDate) { + this.endDate = endDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public Integer getMinTemperature() { + return minTemperature; + } + + public void setMinTemperature(Integer minTemperature) { + this.minTemperature = minTemperature; + } + + public Integer getMaxTemperature() { + return maxTemperature; + } + + public void setMaxTemperature(Integer maxTemperature) { + this.maxTemperature = maxTemperature; + } + + public Boolean getExpanded() { + return expanded; + } + + public void setExpanded(Boolean expanded) { + this.expanded = expanded; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Device.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Device.java new file mode 100644 index 0000000000..2c28b379eb --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Device.java @@ -0,0 +1,556 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.security.Permissions; +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * The {@link Device} is responsible of JSON data For MELCloud API + * Device Structure. + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ + +public class Device { + + @Expose + private Integer deviceID; + + @Expose + private String deviceName; + + @Expose + private Integer buildingID; + + @Expose + private Object buildingName; + + @Expose + private Object floorID; + + @Expose + private Object floorName; + + @Expose + private Object areaID; + + @Expose + private Object areaName; + + @Expose + private Integer imageID; + + @Expose + private String installationDate; + + @Expose + private Object lastServiceDate; + + @Expose + private List presets = null; + + @Expose + private Object ownerID; + + @Expose + private Object ownerName; + + @Expose + private Object ownerEmail; + + @Expose + private Integer accessLevel; + + @Expose + private Boolean directAccess; + + @Expose + private String endDate; + + @Expose + private Object zone1Name; + + @Expose + private Object zone2Name; + + @Expose + private Integer minTemperature; + + @Expose + private Integer maxTemperature; + + @Expose + private Boolean hideVaneControls; + + @Expose + private Boolean hideDryModeControl; + + @Expose + private Boolean hideRoomTemperature; + + @Expose + private Boolean hideSupplyTemperature; + + @Expose + private Boolean hideOutdoorTemperature; + + @Expose + private Object buildingCountry; + + @Expose + private Object ownerCountry; + + @Expose + private Integer adaptorType; + + @Expose + private Integer type; + + @Expose + private String macAddress; + + @Expose + private String serialNumber; + + @Expose + private DeviceProps device; + + @Expose + private Integer diagnosticMode; + + @Expose + private Object diagnosticEndDate; + + @Expose + private Integer location; + + @Expose + private Object detectedCountry; + + @Expose + private Integer registrations; + + @Expose + private Object localIPAddress; + + @Expose + private Integer timeZone; + + @Expose + private Object registReason; + + @Expose + private Integer expectedCommand; + + private Integer registRetry; + + @Expose + private String dateCreated; + + @Expose + private Object firmwareDeployment; + + @Expose + private Boolean firmwareUpdateAborted; + + @Expose + private Permissions permissions; + + public Integer getDeviceID() { + return deviceID; + } + + public void setDeviceID(Integer deviceID) { + this.deviceID = deviceID; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public Integer getBuildingID() { + return buildingID; + } + + public void setBuildingID(Integer buildingID) { + this.buildingID = buildingID; + } + + public Object getBuildingName() { + return buildingName; + } + + public void setBuildingName(Object buildingName) { + this.buildingName = buildingName; + } + + public Object getFloorID() { + return floorID; + } + + public void setFloorID(Object floorID) { + this.floorID = floorID; + } + + public Object getFloorName() { + return floorName; + } + + public void setFloorName(Object floorName) { + this.floorName = floorName; + } + + public Object getAreaID() { + return areaID; + } + + public void setAreaID(Object areaID) { + this.areaID = areaID; + } + + public Object getAreaName() { + return areaName; + } + + public void setAreaName(Object areaName) { + this.areaName = areaName; + } + + public Integer getImageID() { + return imageID; + } + + public void setImageID(Integer imageID) { + this.imageID = imageID; + } + + public String getInstallationDate() { + return installationDate; + } + + public void setInstallationDate(String installationDate) { + this.installationDate = installationDate; + } + + public Object getLastServiceDate() { + return lastServiceDate; + } + + public void setLastServiceDate(Object lastServiceDate) { + this.lastServiceDate = lastServiceDate; + } + + public List getPresets() { + return presets; + } + + public void setPresets(List presets) { + this.presets = presets; + } + + public Object getOwnerID() { + return ownerID; + } + + public void setOwnerID(Object ownerID) { + this.ownerID = ownerID; + } + + public Object getOwnerName() { + return ownerName; + } + + public void setOwnerName(Object ownerName) { + this.ownerName = ownerName; + } + + public Object getOwnerEmail() { + return ownerEmail; + } + + public void setOwnerEmail(Object ownerEmail) { + this.ownerEmail = ownerEmail; + } + + public Integer getAccessLevel() { + return accessLevel; + } + + public void setAccessLevel(Integer accessLevel) { + this.accessLevel = accessLevel; + } + + public Boolean getDirectAccess() { + return directAccess; + } + + public void setDirectAccess(Boolean directAccess) { + this.directAccess = directAccess; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public Object getZone1Name() { + return zone1Name; + } + + public void setZone1Name(Object zone1Name) { + this.zone1Name = zone1Name; + } + + public Object getZone2Name() { + return zone2Name; + } + + public void setZone2Name(Object zone2Name) { + this.zone2Name = zone2Name; + } + + public Integer getMinTemperature() { + return minTemperature; + } + + public void setMinTemperature(Integer minTemperature) { + this.minTemperature = minTemperature; + } + + public Integer getMaxTemperature() { + return maxTemperature; + } + + public void setMaxTemperature(Integer maxTemperature) { + this.maxTemperature = maxTemperature; + } + + public Boolean getHideVaneControls() { + return hideVaneControls; + } + + public void setHideVaneControls(Boolean hideVaneControls) { + this.hideVaneControls = hideVaneControls; + } + + public Boolean getHideDryModeControl() { + return hideDryModeControl; + } + + public void setHideDryModeControl(Boolean hideDryModeControl) { + this.hideDryModeControl = hideDryModeControl; + } + + public Boolean getHideRoomTemperature() { + return hideRoomTemperature; + } + + public void setHideRoomTemperature(Boolean hideRoomTemperature) { + this.hideRoomTemperature = hideRoomTemperature; + } + + public Boolean getHideSupplyTemperature() { + return hideSupplyTemperature; + } + + public void setHideSupplyTemperature(Boolean hideSupplyTemperature) { + this.hideSupplyTemperature = hideSupplyTemperature; + } + + public Boolean getHideOutdoorTemperature() { + return hideOutdoorTemperature; + } + + public void setHideOutdoorTemperature(Boolean hideOutdoorTemperature) { + this.hideOutdoorTemperature = hideOutdoorTemperature; + } + + public Object getBuildingCountry() { + return buildingCountry; + } + + public void setBuildingCountry(Object buildingCountry) { + this.buildingCountry = buildingCountry; + } + + public Object getOwnerCountry() { + return ownerCountry; + } + + public void setOwnerCountry(Object ownerCountry) { + this.ownerCountry = ownerCountry; + } + + public Integer getAdaptorType() { + return adaptorType; + } + + public void setAdaptorType(Integer adaptorType) { + this.adaptorType = adaptorType; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getMacAddress() { + return macAddress; + } + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + + public DeviceProps getDeviceProps() { + return device; + } + + public void setDeviceProps(DeviceProps device) { + this.device = device; + } + + public Integer getDiagnosticMode() { + return diagnosticMode; + } + + public void setDiagnosticMode(Integer diagnosticMode) { + this.diagnosticMode = diagnosticMode; + } + + public Object getDiagnosticEndDate() { + return diagnosticEndDate; + } + + public void setDiagnosticEndDate(Object diagnosticEndDate) { + this.diagnosticEndDate = diagnosticEndDate; + } + + public Integer getLocation() { + return location; + } + + public void setLocation(Integer location) { + this.location = location; + } + + public Object getDetectedCountry() { + return detectedCountry; + } + + public void setDetectedCountry(Object detectedCountry) { + this.detectedCountry = detectedCountry; + } + + public Integer getRegistrations() { + return registrations; + } + + public void setRegistrations(Integer registrations) { + this.registrations = registrations; + } + + public Object getLocalIPAddress() { + return localIPAddress; + } + + public void setLocalIPAddress(Object localIPAddress) { + this.localIPAddress = localIPAddress; + } + + public Integer getTimeZone() { + return timeZone; + } + + public void setTimeZone(Integer timeZone) { + this.timeZone = timeZone; + } + + public Object getRegistReason() { + return registReason; + } + + public void setRegistReason(Object registReason) { + this.registReason = registReason; + } + + public Integer getExpectedCommand() { + return expectedCommand; + } + + public void setExpectedCommand(Integer expectedCommand) { + this.expectedCommand = expectedCommand; + } + + public Integer getRegistRetry() { + return registRetry; + } + + public void setRegistRetry(Integer registRetry) { + this.registRetry = registRetry; + } + + public String getDateCreated() { + return dateCreated; + } + + public void setDateCreated(String dateCreated) { + this.dateCreated = dateCreated; + } + + public Object getFirmwareDeployment() { + return firmwareDeployment; + } + + public void setFirmwareDeployment(Object firmwareDeployment) { + this.firmwareDeployment = firmwareDeployment; + } + + public Boolean getFirmwareUpdateAborted() { + return firmwareUpdateAborted; + } + + public void setFirmwareUpdateAborted(Boolean firmwareUpdateAborted) { + this.firmwareUpdateAborted = firmwareUpdateAborted; + } + + public Permissions getPermissions() { + return permissions; + } + + public void setPermissions(Permissions permissions) { + this.permissions = permissions; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/DeviceProps.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/DeviceProps.java new file mode 100644 index 0000000000..375fbcd029 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/DeviceProps.java @@ -0,0 +1,1105 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * The {@link DeviceProps} is responsible of JSON data For MELCloud API + * Device Properties. + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ +public class DeviceProps { + + @Expose + private List listHistory24Formatters = null; + + @Expose + private Integer deviceType; + + @Expose + private Boolean canCool; + + @Expose + private Boolean canHeat; + + @Expose + private Boolean canDry; + + @Expose + private Boolean hasAutomaticFanSpeed; + + @Expose + private Boolean airDirectionFunction; + + @Expose + private Boolean swingFunction; + + @Expose + private Integer numberOfFanSpeeds; + + @Expose + private Boolean useTemperatureA; + + @Expose + private Integer temperatureIncrementOverride; + + @Expose + private Double temperatureIncrement; + + @Expose + private Double minTempCoolDry; + + @Expose + private Double maxTempCoolDry; + + @Expose + private Double minTempHeat; + + @Expose + private Double maxTempHeat; + + @Expose + private Double minTempAutomatic; + + @Expose + private Double maxTempAutomatic; + + @Expose + private Boolean legacyDevice; + + @Expose + private Boolean unitSupportsStandbyMode; + + @Expose + private Boolean modelIsAirCurtain; + + @Expose + private Boolean modelSupportsFanSpeed; + + @Expose + private Boolean modelSupportsAuto; + + @Expose + private Boolean modelSupportsHeat; + + @Expose + private Boolean modelSupportsDry; + + @Expose + private Boolean modelSupportsVaneVertical; + + @Expose + private Boolean modelSupportsVaneHorizontal; + + @Expose + private Boolean modelSupportsStandbyMode; + + @Expose + private Boolean modelSupportsEnergyReporting; + + @Expose + private Boolean power; + + @Expose + private Double roomTemperature; + + @Expose + private Double setTemperature; + + @Expose + private Integer actualFanSpeed; + + @Expose + private Integer fanSpeed; + + @Expose + private Boolean automaticFanSpeed; + + @Expose + private Integer vaneVerticalDirection; + + @Expose + private Boolean vaneVerticalSwing; + + @Expose + private Integer vaneHorizontalDirection; + + @Expose + private Boolean vaneHorizontalSwing; + + @Expose + private Integer operationMode; + + @Expose + private Integer effectiveFlags; + + @Expose + private Integer lastEffectiveFlags; + + @Expose + private Boolean inStandbyMode; + + @Expose + private Double defaultCoolingSetTemperature; + + @Expose + private Double defaultHeatingSetTemperature; + + @Expose + private Integer roomTemperatureLabel; + + @Expose + private Boolean hasEnergyConsumedMeter; + + @Expose + private Integer currentEnergyConsumed; + + @Expose + private Integer currentEnergyMode; + + @Expose + private Boolean coolingDisabled; + + @Expose + private Integer minPcycle; + + @Expose + private Integer maxPcycle; + + @Expose + private Integer effectivePCycle; + + @Expose + private Integer maxOutdoorUnits; + + @Expose + private Integer maxIndoorUnits; + + @Expose + private Integer maxTemperatureControlUnits; + + @Expose + private Integer deviceID; + + @Expose + private String macAddress; + + @Expose + private String serialNumber; + + @Expose + private Integer timeZoneID; + + @Expose + private Integer diagnosticMode; + + @Expose + private Object diagnosticEndDate; + + @Expose + private Integer expectedCommand; + + @Expose + private Object owner; + + @Expose + private Object detectedCountry; + + @Expose + private Integer adaptorType; + + @Expose + private Object firmwareDeployment; + + @Expose + private Boolean firmwareUpdateAborted; + + @Expose + private Integer wifiSignalStrength; + + @Expose + private String wifiAdapterStatus; + + @Expose + private String position; + + @Expose + private Integer pCycle; + + @Expose + private Integer recordNumMax; + + @Expose + private String lastTimeStamp; + + @Expose + private Integer errorCode; + + @Expose + private Boolean hasError; + + @Expose + private String lastReset; + + @Expose + private Integer flashWrites; + + @Expose + private Object scene; + + @Expose + private Object sSLExpirationDate; + + @Expose + private Object sPTimeout; + + @Expose + private Object passcode; + + @Expose + private Boolean serverCommunicationDisabled; + + @Expose + private Integer consecutiveUploadErrors; + + @Expose + private Object doNotRespondAfter; + + @Expose + private Integer ownerRoleAccessLevel; + + @Expose + private Integer ownerCountry; + + @Expose + private Object rate1StartTime; + + @Expose + private Object rate2StartTime; + + @Expose + private Integer protocolVersion; + + @Expose + private Integer unitVersion; + + @Expose + private Integer firmwareAppVersion; + + @Expose + private Integer firmwareWebVersion; + + @Expose + private Integer firmwareWlanVersion; + + @Expose + private Boolean hasErrorMessages; + + @Expose + private Boolean hasZone2; + + @Expose + private Boolean offline; + + @Expose + private List units = null; + + public List getListHistory24Formatters() { + return listHistory24Formatters; + } + + public void setListHistory24Formatters(List listHistory24Formatters) { + this.listHistory24Formatters = listHistory24Formatters; + } + + public Integer getDeviceType() { + return deviceType; + } + + public void setDeviceType(Integer deviceType) { + this.deviceType = deviceType; + } + + public Boolean getCanCool() { + return canCool; + } + + public void setCanCool(Boolean canCool) { + this.canCool = canCool; + } + + public Boolean getCanHeat() { + return canHeat; + } + + public void setCanHeat(Boolean canHeat) { + this.canHeat = canHeat; + } + + public Boolean getCanDry() { + return canDry; + } + + public void setCanDry(Boolean canDry) { + this.canDry = canDry; + } + + public Boolean getHasAutomaticFanSpeed() { + return hasAutomaticFanSpeed; + } + + public void setHasAutomaticFanSpeed(Boolean hasAutomaticFanSpeed) { + this.hasAutomaticFanSpeed = hasAutomaticFanSpeed; + } + + public Boolean getAirDirectionFunction() { + return airDirectionFunction; + } + + public void setAirDirectionFunction(Boolean airDirectionFunction) { + this.airDirectionFunction = airDirectionFunction; + } + + public Boolean getSwingFunction() { + return swingFunction; + } + + public void setSwingFunction(Boolean swingFunction) { + this.swingFunction = swingFunction; + } + + public Integer getNumberOfFanSpeeds() { + return numberOfFanSpeeds; + } + + public void setNumberOfFanSpeeds(Integer numberOfFanSpeeds) { + this.numberOfFanSpeeds = numberOfFanSpeeds; + } + + public Boolean getUseTemperatureA() { + return useTemperatureA; + } + + public void setUseTemperatureA(Boolean useTemperatureA) { + this.useTemperatureA = useTemperatureA; + } + + public Integer getTemperatureIncrementOverride() { + return temperatureIncrementOverride; + } + + public void setTemperatureIncrementOverride(Integer temperatureIncrementOverride) { + this.temperatureIncrementOverride = temperatureIncrementOverride; + } + + public Double getTemperatureIncrement() { + return temperatureIncrement; + } + + public void setTemperatureIncrement(Double temperatureIncrement) { + this.temperatureIncrement = temperatureIncrement; + } + + public Double getMinTempCoolDry() { + return minTempCoolDry; + } + + public void setMinTempCoolDry(Double minTempCoolDry) { + this.minTempCoolDry = minTempCoolDry; + } + + public Double getMaxTempCoolDry() { + return maxTempCoolDry; + } + + public void setMaxTempCoolDry(Double maxTempCoolDry) { + this.maxTempCoolDry = maxTempCoolDry; + } + + public Double getMinTempHeat() { + return minTempHeat; + } + + public void setMinTempHeat(Double minTempHeat) { + this.minTempHeat = minTempHeat; + } + + public Double getMaxTempHeat() { + return maxTempHeat; + } + + public void setMaxTempHeat(Double maxTempHeat) { + this.maxTempHeat = maxTempHeat; + } + + public Double getMinTempAutomatic() { + return minTempAutomatic; + } + + public void setMinTempAutomatic(Double minTempAutomatic) { + this.minTempAutomatic = minTempAutomatic; + } + + public Double getMaxTempAutomatic() { + return maxTempAutomatic; + } + + public void setMaxTempAutomatic(Double maxTempAutomatic) { + this.maxTempAutomatic = maxTempAutomatic; + } + + public Boolean getLegacyDevice() { + return legacyDevice; + } + + public void setLegacyDevice(Boolean legacyDevice) { + this.legacyDevice = legacyDevice; + } + + public Boolean getUnitSupportsStandbyMode() { + return unitSupportsStandbyMode; + } + + public void setUnitSupportsStandbyMode(Boolean unitSupportsStandbyMode) { + this.unitSupportsStandbyMode = unitSupportsStandbyMode; + } + + public Boolean getModelIsAirCurtain() { + return modelIsAirCurtain; + } + + public void setModelIsAirCurtain(Boolean modelIsAirCurtain) { + this.modelIsAirCurtain = modelIsAirCurtain; + } + + public Boolean getModelSupportsFanSpeed() { + return modelSupportsFanSpeed; + } + + public void setModelSupportsFanSpeed(Boolean modelSupportsFanSpeed) { + this.modelSupportsFanSpeed = modelSupportsFanSpeed; + } + + public Boolean getModelSupportsAuto() { + return modelSupportsAuto; + } + + public void setModelSupportsAuto(Boolean modelSupportsAuto) { + this.modelSupportsAuto = modelSupportsAuto; + } + + public Boolean getModelSupportsHeat() { + return modelSupportsHeat; + } + + public void setModelSupportsHeat(Boolean modelSupportsHeat) { + this.modelSupportsHeat = modelSupportsHeat; + } + + public Boolean getModelSupportsDry() { + return modelSupportsDry; + } + + public void setModelSupportsDry(Boolean modelSupportsDry) { + this.modelSupportsDry = modelSupportsDry; + } + + public Boolean getModelSupportsVaneVertical() { + return modelSupportsVaneVertical; + } + + public void setModelSupportsVaneVertical(Boolean modelSupportsVaneVertical) { + this.modelSupportsVaneVertical = modelSupportsVaneVertical; + } + + public Boolean getModelSupportsVaneHorizontal() { + return modelSupportsVaneHorizontal; + } + + public void setModelSupportsVaneHorizontal(Boolean modelSupportsVaneHorizontal) { + this.modelSupportsVaneHorizontal = modelSupportsVaneHorizontal; + } + + public Boolean getModelSupportsStandbyMode() { + return modelSupportsStandbyMode; + } + + public void setModelSupportsStandbyMode(Boolean modelSupportsStandbyMode) { + this.modelSupportsStandbyMode = modelSupportsStandbyMode; + } + + public Boolean getModelSupportsEnergyReporting() { + return modelSupportsEnergyReporting; + } + + public void setModelSupportsEnergyReporting(Boolean modelSupportsEnergyReporting) { + this.modelSupportsEnergyReporting = modelSupportsEnergyReporting; + } + + public Boolean getPower() { + return power; + } + + public void setPower(Boolean power) { + this.power = power; + } + + public Double getRoomTemperature() { + return roomTemperature; + } + + public void setRoomTemperature(Double roomTemperature) { + this.roomTemperature = roomTemperature; + } + + public Double getSetTemperature() { + return setTemperature; + } + + public void setSetTemperature(Double setTemperature) { + this.setTemperature = setTemperature; + } + + public Integer getActualFanSpeed() { + return actualFanSpeed; + } + + public void setActualFanSpeed(Integer actualFanSpeed) { + this.actualFanSpeed = actualFanSpeed; + } + + public Integer getFanSpeed() { + return fanSpeed; + } + + public void setFanSpeed(Integer fanSpeed) { + this.fanSpeed = fanSpeed; + } + + public Boolean getAutomaticFanSpeed() { + return automaticFanSpeed; + } + + public void setAutomaticFanSpeed(Boolean automaticFanSpeed) { + this.automaticFanSpeed = automaticFanSpeed; + } + + public Integer getVaneVerticalDirection() { + return vaneVerticalDirection; + } + + public void setVaneVerticalDirection(Integer vaneVerticalDirection) { + this.vaneVerticalDirection = vaneVerticalDirection; + } + + public Boolean getVaneVerticalSwing() { + return vaneVerticalSwing; + } + + public void setVaneVerticalSwing(Boolean vaneVerticalSwing) { + this.vaneVerticalSwing = vaneVerticalSwing; + } + + public Integer getVaneHorizontalDirection() { + return vaneHorizontalDirection; + } + + public void setVaneHorizontalDirection(Integer vaneHorizontalDirection) { + this.vaneHorizontalDirection = vaneHorizontalDirection; + } + + public Boolean getVaneHorizontalSwing() { + return vaneHorizontalSwing; + } + + public void setVaneHorizontalSwing(Boolean vaneHorizontalSwing) { + this.vaneHorizontalSwing = vaneHorizontalSwing; + } + + public Integer getOperationMode() { + return operationMode; + } + + public void setOperationMode(Integer operationMode) { + this.operationMode = operationMode; + } + + public Integer getEffectiveFlags() { + return effectiveFlags; + } + + public void setEffectiveFlags(Integer effectiveFlags) { + this.effectiveFlags = effectiveFlags; + } + + public Integer getLastEffectiveFlags() { + return lastEffectiveFlags; + } + + public void setLastEffectiveFlags(Integer lastEffectiveFlags) { + this.lastEffectiveFlags = lastEffectiveFlags; + } + + public Boolean getInStandbyMode() { + return inStandbyMode; + } + + public void setInStandbyMode(Boolean inStandbyMode) { + this.inStandbyMode = inStandbyMode; + } + + public Double getDefaultCoolingSetTemperature() { + return defaultCoolingSetTemperature; + } + + public void setDefaultCoolingSetTemperature(Double defaultCoolingSetTemperature) { + this.defaultCoolingSetTemperature = defaultCoolingSetTemperature; + } + + public Double getDefaultHeatingSetTemperature() { + return defaultHeatingSetTemperature; + } + + public void setDefaultHeatingSetTemperature(Double defaultHeatingSetTemperature) { + this.defaultHeatingSetTemperature = defaultHeatingSetTemperature; + } + + public Integer getRoomTemperatureLabel() { + return roomTemperatureLabel; + } + + public void setRoomTemperatureLabel(Integer roomTemperatureLabel) { + this.roomTemperatureLabel = roomTemperatureLabel; + } + + public Boolean getHasEnergyConsumedMeter() { + return hasEnergyConsumedMeter; + } + + public void setHasEnergyConsumedMeter(Boolean hasEnergyConsumedMeter) { + this.hasEnergyConsumedMeter = hasEnergyConsumedMeter; + } + + public Integer getCurrentEnergyConsumed() { + return currentEnergyConsumed; + } + + public void setCurrentEnergyConsumed(Integer currentEnergyConsumed) { + this.currentEnergyConsumed = currentEnergyConsumed; + } + + public Integer getCurrentEnergyMode() { + return currentEnergyMode; + } + + public void setCurrentEnergyMode(Integer currentEnergyMode) { + this.currentEnergyMode = currentEnergyMode; + } + + public Boolean getCoolingDisabled() { + return coolingDisabled; + } + + public void setCoolingDisabled(Boolean coolingDisabled) { + this.coolingDisabled = coolingDisabled; + } + + public Integer getMinPcycle() { + return minPcycle; + } + + public void setMinPcycle(Integer minPcycle) { + this.minPcycle = minPcycle; + } + + public Integer getMaxPcycle() { + return maxPcycle; + } + + public void setMaxPcycle(Integer maxPcycle) { + this.maxPcycle = maxPcycle; + } + + public Integer getEffectivePCycle() { + return effectivePCycle; + } + + public void setEffectivePCycle(Integer effectivePCycle) { + this.effectivePCycle = effectivePCycle; + } + + public Integer getMaxOutdoorUnits() { + return maxOutdoorUnits; + } + + public void setMaxOutdoorUnits(Integer maxOutdoorUnits) { + this.maxOutdoorUnits = maxOutdoorUnits; + } + + public Integer getMaxIndoorUnits() { + return maxIndoorUnits; + } + + public void setMaxIndoorUnits(Integer maxIndoorUnits) { + this.maxIndoorUnits = maxIndoorUnits; + } + + public Integer getMaxTemperatureControlUnits() { + return maxTemperatureControlUnits; + } + + public void setMaxTemperatureControlUnits(Integer maxTemperatureControlUnits) { + this.maxTemperatureControlUnits = maxTemperatureControlUnits; + } + + public Integer getDeviceID() { + return deviceID; + } + + public void setDeviceID(Integer deviceID) { + this.deviceID = deviceID; + } + + public String getMacAddress() { + return macAddress; + } + + public void setMacAddress(String macAddress) { + this.macAddress = macAddress; + } + + public String getSerialNumber() { + return serialNumber; + } + + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + + public Integer getTimeZoneID() { + return timeZoneID; + } + + public void setTimeZoneID(Integer timeZoneID) { + this.timeZoneID = timeZoneID; + } + + public Integer getDiagnosticMode() { + return diagnosticMode; + } + + public void setDiagnosticMode(Integer diagnosticMode) { + this.diagnosticMode = diagnosticMode; + } + + public Object getDiagnosticEndDate() { + return diagnosticEndDate; + } + + public void setDiagnosticEndDate(Object diagnosticEndDate) { + this.diagnosticEndDate = diagnosticEndDate; + } + + public Integer getExpectedCommand() { + return expectedCommand; + } + + public void setExpectedCommand(Integer expectedCommand) { + this.expectedCommand = expectedCommand; + } + + public Object getOwner() { + return owner; + } + + public void setOwner(Object owner) { + this.owner = owner; + } + + public Object getDetectedCountry() { + return detectedCountry; + } + + public void setDetectedCountry(Object detectedCountry) { + this.detectedCountry = detectedCountry; + } + + public Integer getAdaptorType() { + return adaptorType; + } + + public void setAdaptorType(Integer adaptorType) { + this.adaptorType = adaptorType; + } + + public Object getFirmwareDeployment() { + return firmwareDeployment; + } + + public void setFirmwareDeployment(Object firmwareDeployment) { + this.firmwareDeployment = firmwareDeployment; + } + + public Boolean getFirmwareUpdateAborted() { + return firmwareUpdateAborted; + } + + public void setFirmwareUpdateAborted(Boolean firmwareUpdateAborted) { + this.firmwareUpdateAborted = firmwareUpdateAborted; + } + + public Integer getWifiSignalStrength() { + return wifiSignalStrength; + } + + public void setWifiSignalStrength(Integer wifiSignalStrength) { + this.wifiSignalStrength = wifiSignalStrength; + } + + public String getWifiAdapterStatus() { + return wifiAdapterStatus; + } + + public void setWifiAdapterStatus(String wifiAdapterStatus) { + this.wifiAdapterStatus = wifiAdapterStatus; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public Integer getPCycle() { + return pCycle; + } + + public void setPCycle(Integer pCycle) { + this.pCycle = pCycle; + } + + public Integer getRecordNumMax() { + return recordNumMax; + } + + public void setRecordNumMax(Integer recordNumMax) { + this.recordNumMax = recordNumMax; + } + + public String getLastTimeStamp() { + return lastTimeStamp; + } + + public void setLastTimeStamp(String lastTimeStamp) { + this.lastTimeStamp = lastTimeStamp; + } + + public Integer getErrorCode() { + return errorCode; + } + + public void setErrorCode(Integer errorCode) { + this.errorCode = errorCode; + } + + public Boolean getHasError() { + return hasError; + } + + public void setHasError(Boolean hasError) { + this.hasError = hasError; + } + + public String getLastReset() { + return lastReset; + } + + public void setLastReset(String lastReset) { + this.lastReset = lastReset; + } + + public Integer getFlashWrites() { + return flashWrites; + } + + public void setFlashWrites(Integer flashWrites) { + this.flashWrites = flashWrites; + } + + public Object getScene() { + return scene; + } + + public void setScene(Object scene) { + this.scene = scene; + } + + public Object getSSLExpirationDate() { + return sSLExpirationDate; + } + + public void setSSLExpirationDate(Object sSLExpirationDate) { + this.sSLExpirationDate = sSLExpirationDate; + } + + public Object getSPTimeout() { + return sPTimeout; + } + + public void setSPTimeout(Object sPTimeout) { + this.sPTimeout = sPTimeout; + } + + public Object getPasscode() { + return passcode; + } + + public void setPasscode(Object passcode) { + this.passcode = passcode; + } + + public Boolean getServerCommunicationDisabled() { + return serverCommunicationDisabled; + } + + public void setServerCommunicationDisabled(Boolean serverCommunicationDisabled) { + this.serverCommunicationDisabled = serverCommunicationDisabled; + } + + public Integer getConsecutiveUploadErrors() { + return consecutiveUploadErrors; + } + + public void setConsecutiveUploadErrors(Integer consecutiveUploadErrors) { + this.consecutiveUploadErrors = consecutiveUploadErrors; + } + + public Object getDoNotRespondAfter() { + return doNotRespondAfter; + } + + public void setDoNotRespondAfter(Object doNotRespondAfter) { + this.doNotRespondAfter = doNotRespondAfter; + } + + public Integer getOwnerRoleAccessLevel() { + return ownerRoleAccessLevel; + } + + public void setOwnerRoleAccessLevel(Integer ownerRoleAccessLevel) { + this.ownerRoleAccessLevel = ownerRoleAccessLevel; + } + + public Integer getOwnerCountry() { + return ownerCountry; + } + + public void setOwnerCountry(Integer ownerCountry) { + this.ownerCountry = ownerCountry; + } + + public Object getRate1StartTime() { + return rate1StartTime; + } + + public void setRate1StartTime(Object rate1StartTime) { + this.rate1StartTime = rate1StartTime; + } + + public Object getRate2StartTime() { + return rate2StartTime; + } + + public void setRate2StartTime(Object rate2StartTime) { + this.rate2StartTime = rate2StartTime; + } + + public Integer getProtocolVersion() { + return protocolVersion; + } + + public void setProtocolVersion(Integer protocolVersion) { + this.protocolVersion = protocolVersion; + } + + public Integer getUnitVersion() { + return unitVersion; + } + + public void setUnitVersion(Integer unitVersion) { + this.unitVersion = unitVersion; + } + + public Integer getFirmwareAppVersion() { + return firmwareAppVersion; + } + + public void setFirmwareAppVersion(Integer firmwareAppVersion) { + this.firmwareAppVersion = firmwareAppVersion; + } + + public Integer getFirmwareWebVersion() { + return firmwareWebVersion; + } + + public void setFirmwareWebVersion(Integer firmwareWebVersion) { + this.firmwareWebVersion = firmwareWebVersion; + } + + public Integer getFirmwareWlanVersion() { + return firmwareWlanVersion; + } + + public void setFirmwareWlanVersion(Integer firmwareWlanVersion) { + this.firmwareWlanVersion = firmwareWlanVersion; + } + + public Boolean getHasErrorMessages() { + return hasErrorMessages; + } + + public void setHasErrorMessages(Boolean hasErrorMessages) { + this.hasErrorMessages = hasErrorMessages; + } + + public Boolean getHasZone2() { + return hasZone2; + } + + public void setHasZone2(Boolean hasZone2) { + this.hasZone2 = hasZone2; + } + + public Boolean getOffline() { + return offline; + } + + public void setOffline(Boolean offline) { + this.offline = offline; + } + + public List getUnits() { + return units; + } + + public void setUnits(List units) { + this.units = units; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/DeviceStatus.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/DeviceStatus.java new file mode 100644 index 0000000000..d6782fa431 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/DeviceStatus.java @@ -0,0 +1,347 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * The {@link DeviceProps} is responsible of JSON data For MELCloud API + * Device Status data + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + * @author Pauli Anttila - Fine tuned expose annotations + */ +public class DeviceStatus { + + @Expose + private Integer effectiveFlags; + + @Expose(serialize = false, deserialize = true) + private Object localIPAddress; + + @Expose(serialize = false, deserialize = true) + private Double roomTemperature; + + @Expose + private Double setTemperature; + + @Expose + private Integer setFanSpeed; + + @Expose + private Integer operationMode; + + @Expose + private Integer vaneHorizontal; + + @Expose + private Integer vaneVertical; + + @Expose + private Object name; + + @Expose(serialize = false, deserialize = true) + private Integer numberOfFanSpeeds; + + @Expose(serialize = false, deserialize = true) + private List weatherObservations = null; + + @Expose(serialize = false, deserialize = true) + private Object errorMessage; + + @Expose(serialize = false, deserialize = true) + private Integer errorCode; + + @Expose(serialize = false, deserialize = true) + private Double defaultHeatingSetTemperature; + + @Expose(serialize = false, deserialize = true) + private Double defaultCoolingSetTemperature; + + @Expose(serialize = false, deserialize = true) + private Boolean hideVaneControls; + + @Expose(serialize = false, deserialize = true) + private Boolean hideDryModeControl; + + @Expose(serialize = false, deserialize = true) + private Integer roomTemperatureLabel; + + @Expose(serialize = false, deserialize = true) + private Boolean inStandbyMode; + + @Expose(serialize = false, deserialize = true) + private Integer temperatureIncrementOverride; + + @Expose + private Integer deviceID; + + @Expose(serialize = false, deserialize = true) + private Integer deviceType; + + @Expose(serialize = false, deserialize = true) + private String lastCommunication; + + @Expose(serialize = false, deserialize = true) + private String nextCommunication; + + @Expose + private Boolean power; + + @Expose + private Boolean hasPendingCommand; + + @Expose(serialize = false, deserialize = true) + private Boolean offline; + + @Expose(serialize = false, deserialize = true) + private Object scene; + + @Expose(serialize = false, deserialize = true) + private Object sceneOwner; + + public Integer getEffectiveFlags() { + return effectiveFlags; + } + + public void setEffectiveFlags(Integer effectiveFlags) { + this.effectiveFlags = effectiveFlags; + } + + public Object getLocalIPAddress() { + return localIPAddress; + } + + public void setLocalIPAddress(Object localIPAddress) { + this.localIPAddress = localIPAddress; + } + + public Double getRoomTemperature() { + return roomTemperature; + } + + public void setRoomTemperature(Double roomTemperature) { + this.roomTemperature = roomTemperature; + } + + public Double getSetTemperature() { + return setTemperature; + } + + public void setSetTemperature(Double setTemperature) { + this.setTemperature = setTemperature; + } + + public Integer getSetFanSpeed() { + return setFanSpeed; + } + + public void setSetFanSpeed(Integer setFanSpeed) { + this.setFanSpeed = setFanSpeed; + } + + public Integer getOperationMode() { + return operationMode; + } + + public void setOperationMode(Integer operationMode) { + this.operationMode = operationMode; + } + + public Integer getVaneHorizontal() { + return vaneHorizontal; + } + + public void setVaneHorizontal(Integer vaneHorizontal) { + this.vaneHorizontal = vaneHorizontal; + } + + public Integer getVaneVertical() { + return vaneVertical; + } + + public void setVaneVertical(Integer vaneVertical) { + this.vaneVertical = vaneVertical; + } + + public Object getName() { + return name; + } + + public void setName(Object name) { + this.name = name; + } + + public Integer getNumberOfFanSpeeds() { + return numberOfFanSpeeds; + } + + public void setNumberOfFanSpeeds(Integer numberOfFanSpeeds) { + this.numberOfFanSpeeds = numberOfFanSpeeds; + } + + public List getWeatherObservations() { + return weatherObservations; + } + + public void setWeatherObservations(List weatherObservations) { + this.weatherObservations = weatherObservations; + } + + public Object getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(Object errorMessage) { + this.errorMessage = errorMessage; + } + + public Integer getErrorCode() { + return errorCode; + } + + public void setErrorCode(Integer errorCode) { + this.errorCode = errorCode; + } + + public Double getDefaultHeatingSetTemperature() { + return defaultHeatingSetTemperature; + } + + public void setDefaultHeatingSetTemperature(Double defaultHeatingSetTemperature) { + this.defaultHeatingSetTemperature = defaultHeatingSetTemperature; + } + + public Double getDefaultCoolingSetTemperature() { + return defaultCoolingSetTemperature; + } + + public void setDefaultCoolingSetTemperature(Double defaultCoolingSetTemperature) { + this.defaultCoolingSetTemperature = defaultCoolingSetTemperature; + } + + public Boolean getHideVaneControls() { + return hideVaneControls; + } + + public void setHideVaneControls(Boolean hideVaneControls) { + this.hideVaneControls = hideVaneControls; + } + + public Boolean getHideDryModeControl() { + return hideDryModeControl; + } + + public void setHideDryModeControl(Boolean hideDryModeControl) { + this.hideDryModeControl = hideDryModeControl; + } + + public Integer getRoomTemperatureLabel() { + return roomTemperatureLabel; + } + + public void setRoomTemperatureLabel(Integer roomTemperatureLabel) { + this.roomTemperatureLabel = roomTemperatureLabel; + } + + public Boolean getInStandbyMode() { + return inStandbyMode; + } + + public void setInStandbyMode(Boolean inStandbyMode) { + this.inStandbyMode = inStandbyMode; + } + + public Integer getTemperatureIncrementOverride() { + return temperatureIncrementOverride; + } + + public void setTemperatureIncrementOverride(Integer temperatureIncrementOverride) { + this.temperatureIncrementOverride = temperatureIncrementOverride; + } + + public Integer getDeviceID() { + return deviceID; + } + + public void setDeviceID(Integer deviceID) { + this.deviceID = deviceID; + } + + public Integer getDeviceType() { + return deviceType; + } + + public void setDeviceType(Integer deviceType) { + this.deviceType = deviceType; + } + + public String getLastCommunication() { + return lastCommunication; + } + + public void setLastCommunication(String lastCommunication) { + this.lastCommunication = lastCommunication; + } + + public String getNextCommunication() { + return nextCommunication; + } + + public void setNextCommunication(String nextCommunication) { + this.nextCommunication = nextCommunication; + } + + public Boolean getPower() { + return power; + } + + public void setPower(Boolean power) { + this.power = power; + } + + public Boolean getHasPendingCommand() { + return hasPendingCommand; + } + + public void setHasPendingCommand(Boolean hasPendingCommand) { + this.hasPendingCommand = hasPendingCommand; + } + + public Boolean getOffline() { + return offline; + } + + public void setOffline(Boolean offline) { + this.offline = offline; + } + + public Object getScene() { + return scene; + } + + public void setScene(Object scene) { + this.scene = scene; + } + + public Object getSceneOwner() { + return sceneOwner; + } + + public void setSceneOwner(Object sceneOwner) { + this.sceneOwner = sceneOwner; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Floor.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Floor.java new file mode 100644 index 0000000000..df39ddc2a9 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Floor.java @@ -0,0 +1,148 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * {@link Floor} provides floor specific information for JSON data returned from MELCloud API + * Floor Data + * Generated with jsonschema2pojo + * + * @author Wietse van Buitenen - Initial contribution + */ +public class Floor { + + @Expose + private Integer iD; + + @Expose + private String name; + + @Expose + private Integer buildingId; + + @Expose + private Integer accessLevel; + + @Expose + private Boolean directAccess; + + @Expose + private Object endDate; + + @Expose + private List areas = null; + + @Expose + private List devices = null; + + @Expose + private Integer minTemperature; + + @Expose + private Integer maxTemperature; + + @Expose + private Boolean expanded; + + public Integer getID() { + return iD; + } + + public void setID(Integer iD) { + this.iD = iD; + } + + public Integer getBuildingId() { + return buildingId; + } + + public void setBuildingId(Integer buildingId) { + this.buildingId = buildingId; + } + + public Integer getAccessLevel() { + return accessLevel; + } + + public void setAccessLevel(Integer accessLevel) { + this.accessLevel = accessLevel; + } + + public Boolean getDirectAccess() { + return directAccess; + } + + public void setDirectAccess(Boolean directAccess) { + this.directAccess = directAccess; + } + + public Object getEndDate() { + return endDate; + } + + public void setEndDate(Object endDate) { + this.endDate = endDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getAreas() { + return areas; + } + + public void setAreas(List areas) { + this.areas = areas; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public Integer getMinTemperature() { + return minTemperature; + } + + public void setMinTemperature(Integer minTemperature) { + this.minTemperature = minTemperature; + } + + public Integer getMaxTemperature() { + return maxTemperature; + } + + public void setMaxTemperature(Integer maxTemperature) { + this.maxTemperature = maxTemperature; + } + + public Boolean getExpanded() { + return expanded; + } + + public void setExpanded(Boolean expanded) { + this.expanded = expanded; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/HeatpumpDeviceStatus.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/HeatpumpDeviceStatus.java new file mode 100644 index 0000000000..b80b943adc --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/HeatpumpDeviceStatus.java @@ -0,0 +1,477 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * {@link HeatpumpDeviceStatus} is the JSON data we receive from the MELCloud API + * when performing a request to DeviceType 1. + * Generated with jsonschema2pojo + * + * @author Wietse van Buitenen - Initial contribution + */ +public class HeatpumpDeviceStatus { + @Expose + private Long effectiveFlags; + + @Expose(serialize = false, deserialize = true) + private Object localIPAddress; + + @Expose + private Double setTemperatureZone1; + + @Expose + private Double setTemperatureZone2; + + @Expose(serialize = false, deserialize = true) + private Double roomTemperatureZone1; + + @Expose(serialize = false, deserialize = true) + private Double roomTemperatureZone2; + + @Expose + private Integer operationMode; + + @Expose + private Integer operationModeZone1; + + @Expose + private Integer operationModeZone2; + + @Expose(serialize = false, deserialize = true) + private List weatherObservations = null; + + @Expose(serialize = false, deserialize = true) + private Object errorMessage; + + @Expose(serialize = false, deserialize = true) + private Integer errorCode; + + @Expose + private Double setHeatFlowTemperatureZone1; + + @Expose + private Double setHeatFlowTemperatureZone2; + + @Expose + private Double setCoolFlowTemperatureZone1; + + @Expose + private Double setCoolFlowTemperatureZone2; + + @Expose + private Integer hCControlType; + + @Expose(serialize = false, deserialize = true) + private Double tankWaterTemperature; + + @Expose + private Double setTankWaterTemperature; + + @Expose + private Boolean forcedHotWaterMode; + + @Expose + private Integer unitStatus; + + @Expose + private Double outdoorTemperature; + + @Expose + private Boolean ecoHotWater; + + @Expose + private Object zone1Name; + + @Expose + private Object zone2Name; + + @Expose + private Boolean holidayMode; + + @Expose + private Boolean prohibitZone1; + + @Expose + private Boolean prohibitZone2; + + @Expose + private Boolean prohibitHotWater; + + @Expose + private Integer temperatureIncrementOverride; + + @Expose + private Boolean idleZone1; + + @Expose + private Boolean idleZone2; + + @Expose + private Integer deviceID; + + @Expose + private Integer deviceType; + + @Expose(serialize = false, deserialize = true) + private String lastCommunication; + + @Expose(serialize = false, deserialize = true) + private String nextCommunication; + + @Expose + private Boolean power; + + @Expose(serialize = false, deserialize = true) + private Boolean hasPendingCommand; + + @Expose(serialize = false, deserialize = true) + private Boolean offline; + + @Expose + private Object scene; + + @Expose + private Object sceneOwner; + + public Long getEffectiveFlags() { + return effectiveFlags; + } + + public void setEffectiveFlags(Long effectiveFlags) { + this.effectiveFlags = effectiveFlags; + } + + public Object getLocalIPAddress() { + return localIPAddress; + } + + public void setLocalIPAddress(Object localIPAddress) { + this.localIPAddress = localIPAddress; + } + + public Double getSetTemperatureZone1() { + return setTemperatureZone1; + } + + public void setSetTemperatureZone1(Double setTemperatureZone1) { + this.setTemperatureZone1 = setTemperatureZone1; + } + + public Double getSetTemperatureZone2() { + return setTemperatureZone2; + } + + public void setSetTemperatureZone2(Double setTemperatureZone2) { + this.setTemperatureZone2 = setTemperatureZone2; + } + + public Double getRoomTemperatureZone1() { + return roomTemperatureZone1; + } + + public void setRoomTemperatureZone1(Double roomTemperatureZone1) { + this.roomTemperatureZone1 = roomTemperatureZone1; + } + + public Double getRoomTemperatureZone2() { + return roomTemperatureZone2; + } + + public void setRoomTemperatureZone2(Double roomTemperatureZone2) { + this.roomTemperatureZone2 = roomTemperatureZone2; + } + + public Integer getOperationMode() { + return operationMode; + } + + public void setOperationMode(Integer operationMode) { + this.operationMode = operationMode; + } + + public Integer getOperationModeZone1() { + return operationModeZone1; + } + + public void setOperationModeZone1(Integer operationModeZone1) { + this.operationModeZone1 = operationModeZone1; + } + + public Integer getOperationModeZone2() { + return operationModeZone2; + } + + public void setOperationModeZone2(Integer operationModeZone2) { + this.operationModeZone2 = operationModeZone2; + } + + public List getWeatherObservations() { + return weatherObservations; + } + + public void setWeatherObservations(List weatherObservations) { + this.weatherObservations = weatherObservations; + } + + public Object getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(Object errorMessage) { + this.errorMessage = errorMessage; + } + + public Integer getErrorCode() { + return errorCode; + } + + public void setErrorCode(Integer errorCode) { + this.errorCode = errorCode; + } + + public Double getSetHeatFlowTemperatureZone1() { + return setHeatFlowTemperatureZone1; + } + + public void setSetHeatFlowTemperatureZone1(Double setHeatFlowTemperatureZone1) { + this.setHeatFlowTemperatureZone1 = setHeatFlowTemperatureZone1; + } + + public Double getSetHeatFlowTemperatureZone2() { + return setHeatFlowTemperatureZone2; + } + + public void setSetHeatFlowTemperatureZone2(Double setHeatFlowTemperatureZone2) { + this.setHeatFlowTemperatureZone2 = setHeatFlowTemperatureZone2; + } + + public Double getSetCoolFlowTemperatureZone1() { + return setCoolFlowTemperatureZone1; + } + + public void setSetCoolFlowTemperatureZone1(Double setCoolFlowTemperatureZone1) { + this.setCoolFlowTemperatureZone1 = setCoolFlowTemperatureZone1; + } + + public Double getSetCoolFlowTemperatureZone2() { + return setCoolFlowTemperatureZone2; + } + + public void setSetCoolFlowTemperatureZone2(Double setCoolFlowTemperatureZone2) { + this.setCoolFlowTemperatureZone2 = setCoolFlowTemperatureZone2; + } + + public Integer getHCControlType() { + return hCControlType; + } + + public void setHCControlType(Integer hCControlType) { + this.hCControlType = hCControlType; + } + + public Double getTankWaterTemperature() { + return tankWaterTemperature; + } + + public void setTankWaterTemperature(Double tankWaterTemperature) { + this.tankWaterTemperature = tankWaterTemperature; + } + + public Double getSetTankWaterTemperature() { + return setTankWaterTemperature; + } + + public void setSetTankWaterTemperature(Double setTankWaterTemperature) { + this.setTankWaterTemperature = setTankWaterTemperature; + } + + public Boolean getForcedHotWaterMode() { + return forcedHotWaterMode; + } + + public void setForcedHotWaterMode(Boolean forcedHotWaterMode) { + this.forcedHotWaterMode = forcedHotWaterMode; + } + + public Integer getUnitStatus() { + return unitStatus; + } + + public void setUnitStatus(Integer unitStatus) { + this.unitStatus = unitStatus; + } + + public Double getOutdoorTemperature() { + return outdoorTemperature; + } + + public void setOutdoorTemperature(Double outdoorTemperature) { + this.outdoorTemperature = outdoorTemperature; + } + + public Boolean getEcoHotWater() { + return ecoHotWater; + } + + public void setEcoHotWater(Boolean ecoHotWater) { + this.ecoHotWater = ecoHotWater; + } + + public Object getZone1Name() { + return zone1Name; + } + + public void setZone1Name(Object zone1Name) { + this.zone1Name = zone1Name; + } + + public Object getZone2Name() { + return zone2Name; + } + + public void setZone2Name(Object zone2Name) { + this.zone2Name = zone2Name; + } + + public Boolean getHolidayMode() { + return holidayMode; + } + + public void setHolidayMode(Boolean holidayMode) { + this.holidayMode = holidayMode; + } + + public Boolean getProhibitZone1() { + return prohibitZone1; + } + + public void setProhibitZone1(Boolean prohibitZone1) { + this.prohibitZone1 = prohibitZone1; + } + + public Boolean getProhibitZone2() { + return prohibitZone2; + } + + public void setProhibitZone2(Boolean prohibitZone2) { + this.prohibitZone2 = prohibitZone2; + } + + public Boolean getProhibitHotWater() { + return prohibitHotWater; + } + + public void setProhibitHotWater(Boolean prohibitHotWater) { + this.prohibitHotWater = prohibitHotWater; + } + + public Integer getTemperatureIncrementOverride() { + return temperatureIncrementOverride; + } + + public void setTemperatureIncrementOverride(Integer temperatureIncrementOverride) { + this.temperatureIncrementOverride = temperatureIncrementOverride; + } + + public Boolean getIdleZone1() { + return idleZone1; + } + + public void setIdleZone1(Boolean idleZone1) { + this.idleZone1 = idleZone1; + } + + public Boolean getIdleZone2() { + return idleZone2; + } + + public void setIdleZone2(Boolean idleZone2) { + this.idleZone2 = idleZone2; + } + + public Integer getDeviceID() { + return deviceID; + } + + public void setDeviceID(Integer deviceID) { + this.deviceID = deviceID; + } + + public Integer getDeviceType() { + return deviceType; + } + + public void setDeviceType(Integer deviceType) { + this.deviceType = deviceType; + } + + public String getLastCommunication() { + return lastCommunication; + } + + public void setLastCommunication(String lastCommunication) { + this.lastCommunication = lastCommunication; + } + + public String getNextCommunication() { + return nextCommunication; + } + + public void setNextCommunication(String nextCommunication) { + this.nextCommunication = nextCommunication; + } + + public Boolean getPower() { + return power; + } + + public void setPower(Boolean power) { + this.power = power; + } + + public Boolean getHasPendingCommand() { + return hasPendingCommand; + } + + public void setHasPendingCommand(Boolean hasPendingCommand) { + this.hasPendingCommand = hasPendingCommand; + } + + public Boolean getOffline() { + return offline; + } + + public void setOffline(Boolean offline) { + this.offline = offline; + } + + public Object getScene() { + return scene; + } + + public void setScene(Object scene) { + this.scene = scene; + } + + public Object getSceneOwner() { + return sceneOwner; + } + + public void setSceneOwner(Object sceneOwner) { + this.sceneOwner = sceneOwner; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/ListDevicesResponse.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/ListDevicesResponse.java new file mode 100644 index 0000000000..cfe739ed70 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/ListDevicesResponse.java @@ -0,0 +1,445 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +/** + * The {@link ListDevicesResponse} is responsible of JSON data For MELCloud API + * Response of Devices List. + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ +public class ListDevicesResponse { + + @Expose + private Integer iD; + + @Expose + private String name; + + @Expose + private String addressLine1; + + @Expose + private Object addressLine2; + + @Expose + private String city; + + @Expose + private String postcode; + + @Expose + private Double latitude; + + @Expose + private Double longitude; + + @Expose + private Object district; + + @Expose + private Boolean fPDefined; + + @Expose + private Boolean fPEnabled; + + @Expose + private Integer fPMinTemperature; + + @Expose + private Integer fPMaxTemperature; + + @Expose + private Boolean hMDefined; + + @Expose + private Boolean hMEnabled; + + @Expose + private Object hMStartDate; + + @Expose + private Object hMEndDate; + + @Expose + private Integer buildingType; + + @Expose + private Integer propertyType; + + @Expose + private String dateBuilt; + + @Expose + private Boolean hasGasSupply; + + @Expose + private String locationLookupDate; + + @Expose + private Integer country; + + @Expose + private Integer timeZoneContinent; + + @Expose + private Integer timeZoneCity; + + @Expose + private Integer timeZone; + + @Expose + private Integer location; + + @Expose + private Boolean coolingDisabled; + + @Expose + private Boolean expanded; + + @Expose + private Structure structure; + + @Expose + private Integer accessLevel; + + @Expose + private Boolean directAccess; + + @Expose + private Integer minTemperature; + + @Expose + private Integer maxTemperature; + + @Expose + private Object owner; + + @Expose + private String endDate; + + @SerializedName("iDateBuilt") + @Expose + private Object iDateBuilt; + + @Expose + private QuantizedCoordinates quantizedCoordinates; + + public Integer getID() { + return iD; + } + + public void setID(Integer iD) { + this.iD = iD; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAddressLine1() { + return addressLine1; + } + + public void setAddressLine1(String addressLine1) { + this.addressLine1 = addressLine1; + } + + public Object getAddressLine2() { + return addressLine2; + } + + public void setAddressLine2(Object addressLine2) { + this.addressLine2 = addressLine2; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + public String getPostcode() { + return postcode; + } + + public void setPostcode(String postcode) { + this.postcode = postcode; + } + + public Double getLatitude() { + return latitude; + } + + public void setLatitude(Double latitude) { + this.latitude = latitude; + } + + public Double getLongitude() { + return longitude; + } + + public void setLongitude(Double longitude) { + this.longitude = longitude; + } + + public Object getDistrict() { + return district; + } + + public void setDistrict(Object district) { + this.district = district; + } + + public Boolean getFPDefined() { + return fPDefined; + } + + public void setFPDefined(Boolean fPDefined) { + this.fPDefined = fPDefined; + } + + public Boolean getFPEnabled() { + return fPEnabled; + } + + public void setFPEnabled(Boolean fPEnabled) { + this.fPEnabled = fPEnabled; + } + + public Integer getFPMinTemperature() { + return fPMinTemperature; + } + + public void setFPMinTemperature(Integer fPMinTemperature) { + this.fPMinTemperature = fPMinTemperature; + } + + public Integer getFPMaxTemperature() { + return fPMaxTemperature; + } + + public void setFPMaxTemperature(Integer fPMaxTemperature) { + this.fPMaxTemperature = fPMaxTemperature; + } + + public Boolean getHMDefined() { + return hMDefined; + } + + public void setHMDefined(Boolean hMDefined) { + this.hMDefined = hMDefined; + } + + public Boolean getHMEnabled() { + return hMEnabled; + } + + public void setHMEnabled(Boolean hMEnabled) { + this.hMEnabled = hMEnabled; + } + + public Object getHMStartDate() { + return hMStartDate; + } + + public void setHMStartDate(Object hMStartDate) { + this.hMStartDate = hMStartDate; + } + + public Object getHMEndDate() { + return hMEndDate; + } + + public void setHMEndDate(Object hMEndDate) { + this.hMEndDate = hMEndDate; + } + + public Integer getBuildingType() { + return buildingType; + } + + public void setBuildingType(Integer buildingType) { + this.buildingType = buildingType; + } + + public Integer getPropertyType() { + return propertyType; + } + + public void setPropertyType(Integer propertyType) { + this.propertyType = propertyType; + } + + public String getDateBuilt() { + return dateBuilt; + } + + public void setDateBuilt(String dateBuilt) { + this.dateBuilt = dateBuilt; + } + + public Boolean getHasGasSupply() { + return hasGasSupply; + } + + public void setHasGasSupply(Boolean hasGasSupply) { + this.hasGasSupply = hasGasSupply; + } + + public String getLocationLookupDate() { + return locationLookupDate; + } + + public void setLocationLookupDate(String locationLookupDate) { + this.locationLookupDate = locationLookupDate; + } + + public Integer getCountry() { + return country; + } + + public void setCountry(Integer country) { + this.country = country; + } + + public Integer getTimeZoneContinent() { + return timeZoneContinent; + } + + public void setTimeZoneContinent(Integer timeZoneContinent) { + this.timeZoneContinent = timeZoneContinent; + } + + public Integer getTimeZoneCity() { + return timeZoneCity; + } + + public void setTimeZoneCity(Integer timeZoneCity) { + this.timeZoneCity = timeZoneCity; + } + + public Integer getTimeZone() { + return timeZone; + } + + public void setTimeZone(Integer timeZone) { + this.timeZone = timeZone; + } + + public Integer getLocation() { + return location; + } + + public void setLocation(Integer location) { + this.location = location; + } + + public Boolean getCoolingDisabled() { + return coolingDisabled; + } + + public void setCoolingDisabled(Boolean coolingDisabled) { + this.coolingDisabled = coolingDisabled; + } + + public Boolean getExpanded() { + return expanded; + } + + public void setExpanded(Boolean expanded) { + this.expanded = expanded; + } + + public Structure getStructure() { + return structure; + } + + public void setStructure(Structure structure) { + this.structure = structure; + } + + public Integer getAccessLevel() { + return accessLevel; + } + + public void setAccessLevel(Integer accessLevel) { + this.accessLevel = accessLevel; + } + + public Boolean getDirectAccess() { + return directAccess; + } + + public void setDirectAccess(Boolean directAccess) { + this.directAccess = directAccess; + } + + public Integer getMinTemperature() { + return minTemperature; + } + + public void setMinTemperature(Integer minTemperature) { + this.minTemperature = minTemperature; + } + + public Integer getMaxTemperature() { + return maxTemperature; + } + + public void setMaxTemperature(Integer maxTemperature) { + this.maxTemperature = maxTemperature; + } + + public Object getOwner() { + return owner; + } + + public void setOwner(Object owner) { + this.owner = owner; + } + + public String getEndDate() { + return endDate; + } + + public void setEndDate(String endDate) { + this.endDate = endDate; + } + + public Object getIDateBuilt() { + return iDateBuilt; + } + + public void setIDateBuilt(Object iDateBuilt) { + this.iDateBuilt = iDateBuilt; + } + + public QuantizedCoordinates getQuantizedCoordinates() { + return quantizedCoordinates; + } + + public void setQuantizedCoordinates(QuantizedCoordinates quantizedCoordinates) { + this.quantizedCoordinates = quantizedCoordinates; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/LoginClientResponse.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/LoginClientResponse.java new file mode 100644 index 0000000000..54f94626a0 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/LoginClientResponse.java @@ -0,0 +1,159 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * The {@link LoginClientResponse} is responsible of JSON data For MELCloud API + * Response Data of Login. + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ +public class LoginClientResponse { + + @Expose + private Object errorId; + + @Expose + private Object errorMessage; + + @Expose + private Integer loginStatus; + + @Expose + private Integer userId; + + @Expose + private Object randomKey; + + @Expose + private Object appVersionAnnouncement; + + @Expose + private LoginData loginData; + + @Expose + private List listPendingInvite = null; + + @Expose + private List listOwnershipChangeRequest = null; + + @Expose + private List listPendingAnnouncement = null; + + @Expose + private Integer loginMinutes; + + @Expose + private Integer loginAttempts; + + public Object getErrorId() { + return errorId; + } + + public void setErrorId(Object errorId) { + this.errorId = errorId; + } + + public Object getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(Object errorMessage) { + this.errorMessage = errorMessage; + } + + public Integer getLoginStatus() { + return loginStatus; + } + + public void setLoginStatus(Integer loginStatus) { + this.loginStatus = loginStatus; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Object getRandomKey() { + return randomKey; + } + + public void setRandomKey(Object randomKey) { + this.randomKey = randomKey; + } + + public Object getAppVersionAnnouncement() { + return appVersionAnnouncement; + } + + public void setAppVersionAnnouncement(Object appVersionAnnouncement) { + this.appVersionAnnouncement = appVersionAnnouncement; + } + + public LoginData getLoginData() { + return loginData; + } + + public void setLoginData(LoginData loginData) { + this.loginData = loginData; + } + + public List getListPendingInvite() { + return listPendingInvite; + } + + public void setListPendingInvite(List listPendingInvite) { + this.listPendingInvite = listPendingInvite; + } + + public List getListOwnershipChangeRequest() { + return listOwnershipChangeRequest; + } + + public void setListOwnershipChangeRequest(List listOwnershipChangeRequest) { + this.listOwnershipChangeRequest = listOwnershipChangeRequest; + } + + public List getListPendingAnnouncement() { + return listPendingAnnouncement; + } + + public void setListPendingAnnouncement(List listPendingAnnouncement) { + this.listPendingAnnouncement = listPendingAnnouncement; + } + + public Integer getLoginMinutes() { + return loginMinutes; + } + + public void setLoginMinutes(Integer loginMinutes) { + this.loginMinutes = loginMinutes; + } + + public Integer getLoginAttempts() { + return loginAttempts; + } + + public void setLoginAttempts(Integer loginAttempts) { + this.loginAttempts = loginAttempts; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/LoginData.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/LoginData.java new file mode 100644 index 0000000000..e09b1d0aea --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/LoginData.java @@ -0,0 +1,509 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import com.google.gson.annotations.Expose; + +/** + * The {@link LoginData} is responsible of JSON data For MELCloud API + * LoginData for Login Request. + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ +public class LoginData { + + @Expose + private String contextKey; + + @Expose + private Integer client; + + @Expose + private Integer terms; + + @Expose + private Integer aL; + + @Expose + private Integer mL; + + @Expose + private Boolean cMI; + + @Expose + private Boolean isStaff; + + @Expose + private Boolean cUTF; + + @Expose + private Boolean cAA; + + @Expose + private Boolean receiveCountryNotifications; + + @Expose + private Boolean receiveAllNotifications; + + @Expose + private Boolean cACA; + + @Expose + private Boolean cAGA; + + @Expose + private Integer maximumDevices; + + @Expose + private Boolean showDiagnostics; + + @Expose + private Integer language; + + @Expose + private Integer country; + + @Expose + private Integer realClient; + + @Expose + private String name; + + @Expose + private Boolean useFahrenheit; + + @Expose + private Integer duration; + + @Expose + private String expiry; + + @Expose + private Boolean cMSC; + + @Expose + private Object partnerApplicationVersion; + + @Expose + private Boolean emailSettingsReminderShown; + + @Expose + private Integer emailUnitErrors; + + @Expose + private Integer emailCommsErrors; + + @Expose + private Boolean isImpersonated; + + @Expose + private String languageCode; + + @Expose + private String countryName; + + @Expose + private String currencySymbol; + + @Expose + private String supportEmailAddress; + + @Expose + private String dateSeperator; + + @Expose + private String timeSeperator; + + @Expose + private String atwLogoFile; + + @Expose + private Boolean dECCReport; + + @Expose + private Boolean cSVReport1min; + + @Expose + private Boolean hidePresetPanel; + + @Expose + private Boolean emailSettingsReminderRequired; + + @Expose + private Object termsText; + + @Expose + private Boolean mapView; + + @Expose + private Integer mapZoom; + + @Expose + private Double mapLongitude; + + @Expose + private Double mapLatitude; + + public String getContextKey() { + return contextKey; + } + + public void setContextKey(String contextKey) { + this.contextKey = contextKey; + } + + public Integer getClient() { + return client; + } + + public void setClient(Integer client) { + this.client = client; + } + + public Integer getTerms() { + return terms; + } + + public void setTerms(Integer terms) { + this.terms = terms; + } + + public Integer getAL() { + return aL; + } + + public void setAL(Integer aL) { + this.aL = aL; + } + + public Integer getML() { + return mL; + } + + public void setML(Integer mL) { + this.mL = mL; + } + + public Boolean getCMI() { + return cMI; + } + + public void setCMI(Boolean cMI) { + this.cMI = cMI; + } + + public Boolean getIsStaff() { + return isStaff; + } + + public void setIsStaff(Boolean isStaff) { + this.isStaff = isStaff; + } + + public Boolean getCUTF() { + return cUTF; + } + + public void setCUTF(Boolean cUTF) { + this.cUTF = cUTF; + } + + public Boolean getCAA() { + return cAA; + } + + public void setCAA(Boolean cAA) { + this.cAA = cAA; + } + + public Boolean getReceiveCountryNotifications() { + return receiveCountryNotifications; + } + + public void setReceiveCountryNotifications(Boolean receiveCountryNotifications) { + this.receiveCountryNotifications = receiveCountryNotifications; + } + + public Boolean getReceiveAllNotifications() { + return receiveAllNotifications; + } + + public void setReceiveAllNotifications(Boolean receiveAllNotifications) { + this.receiveAllNotifications = receiveAllNotifications; + } + + public Boolean getCACA() { + return cACA; + } + + public void setCACA(Boolean cACA) { + this.cACA = cACA; + } + + public Boolean getCAGA() { + return cAGA; + } + + public void setCAGA(Boolean cAGA) { + this.cAGA = cAGA; + } + + public Integer getMaximumDevices() { + return maximumDevices; + } + + public void setMaximumDevices(Integer maximumDevices) { + this.maximumDevices = maximumDevices; + } + + public Boolean getShowDiagnostics() { + return showDiagnostics; + } + + public void setShowDiagnostics(Boolean showDiagnostics) { + this.showDiagnostics = showDiagnostics; + } + + public Integer getLanguage() { + return language; + } + + public void setLanguage(Integer language) { + this.language = language; + } + + public Integer getCountry() { + return country; + } + + public void setCountry(Integer country) { + this.country = country; + } + + public Integer getRealClient() { + return realClient; + } + + public void setRealClient(Integer realClient) { + this.realClient = realClient; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Boolean getUseFahrenheit() { + return useFahrenheit; + } + + public void setUseFahrenheit(Boolean useFahrenheit) { + this.useFahrenheit = useFahrenheit; + } + + public Integer getDuration() { + return duration; + } + + public void setDuration(Integer duration) { + this.duration = duration; + } + + public String getExpiry() { + return expiry; + } + + public void setExpiry(String expiry) { + this.expiry = expiry; + } + + public Boolean getCMSC() { + return cMSC; + } + + public void setCMSC(Boolean cMSC) { + this.cMSC = cMSC; + } + + public Object getPartnerApplicationVersion() { + return partnerApplicationVersion; + } + + public void setPartnerApplicationVersion(Object partnerApplicationVersion) { + this.partnerApplicationVersion = partnerApplicationVersion; + } + + public Boolean getEmailSettingsReminderShown() { + return emailSettingsReminderShown; + } + + public void setEmailSettingsReminderShown(Boolean emailSettingsReminderShown) { + this.emailSettingsReminderShown = emailSettingsReminderShown; + } + + public Integer getEmailUnitErrors() { + return emailUnitErrors; + } + + public void setEmailUnitErrors(Integer emailUnitErrors) { + this.emailUnitErrors = emailUnitErrors; + } + + public Integer getEmailCommsErrors() { + return emailCommsErrors; + } + + public void setEmailCommsErrors(Integer emailCommsErrors) { + this.emailCommsErrors = emailCommsErrors; + } + + public Boolean getIsImpersonated() { + return isImpersonated; + } + + public void setIsImpersonated(Boolean isImpersonated) { + this.isImpersonated = isImpersonated; + } + + public String getLanguageCode() { + return languageCode; + } + + public void setLanguageCode(String languageCode) { + this.languageCode = languageCode; + } + + public String getCountryName() { + return countryName; + } + + public void setCountryName(String countryName) { + this.countryName = countryName; + } + + public String getCurrencySymbol() { + return currencySymbol; + } + + public void setCurrencySymbol(String currencySymbol) { + this.currencySymbol = currencySymbol; + } + + public String getSupportEmailAddress() { + return supportEmailAddress; + } + + public void setSupportEmailAddress(String supportEmailAddress) { + this.supportEmailAddress = supportEmailAddress; + } + + public String getDateSeperator() { + return dateSeperator; + } + + public void setDateSeperator(String dateSeperator) { + this.dateSeperator = dateSeperator; + } + + public String getTimeSeperator() { + return timeSeperator; + } + + public void setTimeSeperator(String timeSeperator) { + this.timeSeperator = timeSeperator; + } + + public String getAtwLogoFile() { + return atwLogoFile; + } + + public void setAtwLogoFile(String atwLogoFile) { + this.atwLogoFile = atwLogoFile; + } + + public Boolean getDECCReport() { + return dECCReport; + } + + public void setDECCReport(Boolean dECCReport) { + this.dECCReport = dECCReport; + } + + public Boolean getCSVReport1min() { + return cSVReport1min; + } + + public void setCSVReport1min(Boolean cSVReport1min) { + this.cSVReport1min = cSVReport1min; + } + + public Boolean getHidePresetPanel() { + return hidePresetPanel; + } + + public void setHidePresetPanel(Boolean hidePresetPanel) { + this.hidePresetPanel = hidePresetPanel; + } + + public Boolean getEmailSettingsReminderRequired() { + return emailSettingsReminderRequired; + } + + public void setEmailSettingsReminderRequired(Boolean emailSettingsReminderRequired) { + this.emailSettingsReminderRequired = emailSettingsReminderRequired; + } + + public Object getTermsText() { + return termsText; + } + + public void setTermsText(Object termsText) { + this.termsText = termsText; + } + + public Boolean getMapView() { + return mapView; + } + + public void setMapView(Boolean mapView) { + this.mapView = mapView; + } + + public Integer getMapZoom() { + return mapZoom; + } + + public void setMapZoom(Integer mapZoom) { + this.mapZoom = mapZoom; + } + + public Double getMapLongitude() { + return mapLongitude; + } + + public void setMapLongitude(Double mapLongitude) { + this.mapLongitude = mapLongitude; + } + + public Double getMapLatitude() { + return mapLatitude; + } + + public void setMapLatitude(Double mapLatitude) { + this.mapLatitude = mapLatitude; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Preset.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Preset.java new file mode 100644 index 0000000000..5570cd16f9 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Preset.java @@ -0,0 +1,157 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import com.google.gson.annotations.Expose; + +/** + * The {@link Preset} is responsible of JSON data For MELCloud API + * Preset data + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ +public class Preset { + + @Expose + private Double setTemperature; + + @Expose + private Boolean power; + + @Expose + private Integer operationMode; + + @Expose + private Integer vaneHorizontal; + + @Expose + private Integer vaneVertical; + + @Expose + private Integer fanSpeed; + + @Expose + private Integer iD; + + @Expose + private Integer client; + + @Expose + private Integer deviceLocation; + + @Expose + private Integer number; + + @Expose + private String configuration; + + @Expose + private String numberDescription; + + public Double getSetTemperature() { + return setTemperature; + } + + public void setSetTemperature(Double setTemperature) { + this.setTemperature = setTemperature; + } + + public Boolean getPower() { + return power; + } + + public void setPower(Boolean power) { + this.power = power; + } + + public Integer getOperationMode() { + return operationMode; + } + + public void setOperationMode(Integer operationMode) { + this.operationMode = operationMode; + } + + public Integer getVaneHorizontal() { + return vaneHorizontal; + } + + public void setVaneHorizontal(Integer vaneHorizontal) { + this.vaneHorizontal = vaneHorizontal; + } + + public Integer getVaneVertical() { + return vaneVertical; + } + + public void setVaneVertical(Integer vaneVertical) { + this.vaneVertical = vaneVertical; + } + + public Integer getFanSpeed() { + return fanSpeed; + } + + public void setFanSpeed(Integer fanSpeed) { + this.fanSpeed = fanSpeed; + } + + public Integer getID() { + return iD; + } + + public void setID(Integer iD) { + this.iD = iD; + } + + public Integer getClient() { + return client; + } + + public void setClient(Integer client) { + this.client = client; + } + + public Integer getDeviceLocation() { + return deviceLocation; + } + + public void setDeviceLocation(Integer deviceLocation) { + this.deviceLocation = deviceLocation; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + public String getConfiguration() { + return configuration; + } + + public void setConfiguration(String configuration) { + this.configuration = configuration; + } + + public String getNumberDescription() { + return numberDescription; + } + + public void setNumberDescription(String numberDescription) { + this.numberDescription = numberDescription; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/QuantizedCoordinates.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/QuantizedCoordinates.java new file mode 100644 index 0000000000..34490b13b4 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/QuantizedCoordinates.java @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import com.google.gson.annotations.Expose; + +/** + * The {@link QuantizedCoordinates} is responsible of JSON data For MELCloud API + * QuantizedCoordinates data + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ +public class QuantizedCoordinates { + + @Expose + private Double latitude; + + @Expose + private Double longitude; + + public Double getLatitude() { + return latitude; + } + + public void setLatitude(Double latitude) { + this.latitude = latitude; + } + + public Double getLongitude() { + return longitude; + } + + public void setLongitude(Double longitude) { + this.longitude = longitude; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Structure.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Structure.java new file mode 100644 index 0000000000..840a059812 --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/Structure.java @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import java.util.List; + +import com.google.gson.annotations.Expose; + +/** + * The {@link Structure} is responsible of JSON data For MELCloud API + * Structure Data + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + * @author Wietse van Buitenen - Add Floor and Area + */ +public class Structure { + + @Expose + private List floors = null; + + @Expose + private List areas = null; + + @Expose + private List devices = null; + + @Expose + private List clients = null; + + public List getFloors() { + return floors; + } + + public void setFloors(List floors) { + this.floors = floors; + } + + public List getAreas() { + return areas; + } + + public void setAreas(List areas) { + this.areas = areas; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public List getClients() { + return clients; + } + + public void setClients(List clients) { + this.clients = clients; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/WeatherObservation.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/WeatherObservation.java new file mode 100644 index 0000000000..ed16b1147d --- /dev/null +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/dto/WeatherObservation.java @@ -0,0 +1,146 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.melcloud.internal.api.dto; + +import com.google.gson.annotations.Expose; + +/** + * The {@link Structure} is responsible of JSON data For MELCloud API + * WeatherObservation Data + * Generated with jsonschema2pojo + * + * @author Luca Calcaterra - Initial contribution + */ +public class WeatherObservation { + + @Expose + private String date; + + @Expose + private String sunrise; + + @Expose + private String sunset; + + @Expose + private Integer condition; + + @Expose + private Integer iD; + + @Expose + private Integer humidity; + + @Expose + private Integer temperature; + + @Expose + private String icon; + + @Expose + private String conditionName; + + @Expose + private Integer day; + + @Expose + private Integer weatherType; + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getSunrise() { + return sunrise; + } + + public void setSunrise(String sunrise) { + this.sunrise = sunrise; + } + + public String getSunset() { + return sunset; + } + + public void setSunset(String sunset) { + this.sunset = sunset; + } + + public Integer getCondition() { + return condition; + } + + public void setCondition(Integer condition) { + this.condition = condition; + } + + public Integer getID() { + return iD; + } + + public void setID(Integer iD) { + this.iD = iD; + } + + public Integer getHumidity() { + return humidity; + } + + public void setHumidity(Integer humidity) { + this.humidity = humidity; + } + + public Integer getTemperature() { + return temperature; + } + + public void setTemperature(Integer temperature) { + this.temperature = temperature; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public String getConditionName() { + return conditionName; + } + + public void setConditionName(String conditionName) { + this.conditionName = conditionName; + } + + public Integer getDay() { + return day; + } + + public void setDay(Integer day) { + this.day = day; + } + + public Integer getWeatherType() { + return weatherType; + } + + public void setWeatherType(Integer weatherType) { + this.weatherType = weatherType; + } +} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Area.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Area.java deleted file mode 100644 index 8fe8086381..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Area.java +++ /dev/null @@ -1,148 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * {@link Area} provides area specific information for JSON data returned from MELCloud API - * Area Data - * Generated with jsonschema2pojo - * - * @author Wietse van Buitenen - Initial contribution - */ -public class Area { - - @Expose - private Integer iD; - - @Expose - private String name; - - @Expose - private Integer buildingId; - - @Expose - private Integer floorId; - - @Expose - private Integer accessLevel; - - @Expose - private Boolean directAccess; - - @Expose - private Object endDate; - - @Expose - private Integer minTemperature; - - @Expose - private Integer maxTemperature; - - @Expose - private Boolean expanded; - - @Expose - private List devices = null; - - public Integer getID() { - return iD; - } - - public void setID(Integer iD) { - this.iD = iD; - } - - public Integer getBuildingId() { - return buildingId; - } - - public void setBuildingId(Integer buildingId) { - this.buildingId = buildingId; - } - - public Integer getFloorId() { - return floorId; - } - - public void setFloorId(Integer floorId) { - this.floorId = floorId; - } - - public Integer getAccessLevel() { - return accessLevel; - } - - public void setAccessLevel(Integer accessLevel) { - this.accessLevel = accessLevel; - } - - public Boolean getDirectAccess() { - return directAccess; - } - - public void setDirectAccess(Boolean directAccess) { - this.directAccess = directAccess; - } - - public Object getEndDate() { - return endDate; - } - - public void setEndDate(Object endDate) { - this.endDate = endDate; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getDevices() { - return devices; - } - - public void setDevices(List devices) { - this.devices = devices; - } - - public Integer getMinTemperature() { - return minTemperature; - } - - public void setMinTemperature(Integer minTemperature) { - this.minTemperature = minTemperature; - } - - public Integer getMaxTemperature() { - return maxTemperature; - } - - public void setMaxTemperature(Integer maxTemperature) { - this.maxTemperature = maxTemperature; - } - - public Boolean getExpanded() { - return expanded; - } - - public void setExpanded(Boolean expanded) { - this.expanded = expanded; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Device.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Device.java deleted file mode 100644 index 45e2253aa4..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Device.java +++ /dev/null @@ -1,556 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.security.Permissions; -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * The {@link Device} is responsible of JSON data For MELCloud API - * Device Structure. - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ - -public class Device { - - @Expose - private Integer deviceID; - - @Expose - private String deviceName; - - @Expose - private Integer buildingID; - - @Expose - private Object buildingName; - - @Expose - private Object floorID; - - @Expose - private Object floorName; - - @Expose - private Object areaID; - - @Expose - private Object areaName; - - @Expose - private Integer imageID; - - @Expose - private String installationDate; - - @Expose - private Object lastServiceDate; - - @Expose - private List presets = null; - - @Expose - private Object ownerID; - - @Expose - private Object ownerName; - - @Expose - private Object ownerEmail; - - @Expose - private Integer accessLevel; - - @Expose - private Boolean directAccess; - - @Expose - private String endDate; - - @Expose - private Object zone1Name; - - @Expose - private Object zone2Name; - - @Expose - private Integer minTemperature; - - @Expose - private Integer maxTemperature; - - @Expose - private Boolean hideVaneControls; - - @Expose - private Boolean hideDryModeControl; - - @Expose - private Boolean hideRoomTemperature; - - @Expose - private Boolean hideSupplyTemperature; - - @Expose - private Boolean hideOutdoorTemperature; - - @Expose - private Object buildingCountry; - - @Expose - private Object ownerCountry; - - @Expose - private Integer adaptorType; - - @Expose - private Integer type; - - @Expose - private String macAddress; - - @Expose - private String serialNumber; - - @Expose - private DeviceProps device; - - @Expose - private Integer diagnosticMode; - - @Expose - private Object diagnosticEndDate; - - @Expose - private Integer location; - - @Expose - private Object detectedCountry; - - @Expose - private Integer registrations; - - @Expose - private Object localIPAddress; - - @Expose - private Integer timeZone; - - @Expose - private Object registReason; - - @Expose - private Integer expectedCommand; - - private Integer registRetry; - - @Expose - private String dateCreated; - - @Expose - private Object firmwareDeployment; - - @Expose - private Boolean firmwareUpdateAborted; - - @Expose - private Permissions permissions; - - public Integer getDeviceID() { - return deviceID; - } - - public void setDeviceID(Integer deviceID) { - this.deviceID = deviceID; - } - - public String getDeviceName() { - return deviceName; - } - - public void setDeviceName(String deviceName) { - this.deviceName = deviceName; - } - - public Integer getBuildingID() { - return buildingID; - } - - public void setBuildingID(Integer buildingID) { - this.buildingID = buildingID; - } - - public Object getBuildingName() { - return buildingName; - } - - public void setBuildingName(Object buildingName) { - this.buildingName = buildingName; - } - - public Object getFloorID() { - return floorID; - } - - public void setFloorID(Object floorID) { - this.floorID = floorID; - } - - public Object getFloorName() { - return floorName; - } - - public void setFloorName(Object floorName) { - this.floorName = floorName; - } - - public Object getAreaID() { - return areaID; - } - - public void setAreaID(Object areaID) { - this.areaID = areaID; - } - - public Object getAreaName() { - return areaName; - } - - public void setAreaName(Object areaName) { - this.areaName = areaName; - } - - public Integer getImageID() { - return imageID; - } - - public void setImageID(Integer imageID) { - this.imageID = imageID; - } - - public String getInstallationDate() { - return installationDate; - } - - public void setInstallationDate(String installationDate) { - this.installationDate = installationDate; - } - - public Object getLastServiceDate() { - return lastServiceDate; - } - - public void setLastServiceDate(Object lastServiceDate) { - this.lastServiceDate = lastServiceDate; - } - - public List getPresets() { - return presets; - } - - public void setPresets(List presets) { - this.presets = presets; - } - - public Object getOwnerID() { - return ownerID; - } - - public void setOwnerID(Object ownerID) { - this.ownerID = ownerID; - } - - public Object getOwnerName() { - return ownerName; - } - - public void setOwnerName(Object ownerName) { - this.ownerName = ownerName; - } - - public Object getOwnerEmail() { - return ownerEmail; - } - - public void setOwnerEmail(Object ownerEmail) { - this.ownerEmail = ownerEmail; - } - - public Integer getAccessLevel() { - return accessLevel; - } - - public void setAccessLevel(Integer accessLevel) { - this.accessLevel = accessLevel; - } - - public Boolean getDirectAccess() { - return directAccess; - } - - public void setDirectAccess(Boolean directAccess) { - this.directAccess = directAccess; - } - - public String getEndDate() { - return endDate; - } - - public void setEndDate(String endDate) { - this.endDate = endDate; - } - - public Object getZone1Name() { - return zone1Name; - } - - public void setZone1Name(Object zone1Name) { - this.zone1Name = zone1Name; - } - - public Object getZone2Name() { - return zone2Name; - } - - public void setZone2Name(Object zone2Name) { - this.zone2Name = zone2Name; - } - - public Integer getMinTemperature() { - return minTemperature; - } - - public void setMinTemperature(Integer minTemperature) { - this.minTemperature = minTemperature; - } - - public Integer getMaxTemperature() { - return maxTemperature; - } - - public void setMaxTemperature(Integer maxTemperature) { - this.maxTemperature = maxTemperature; - } - - public Boolean getHideVaneControls() { - return hideVaneControls; - } - - public void setHideVaneControls(Boolean hideVaneControls) { - this.hideVaneControls = hideVaneControls; - } - - public Boolean getHideDryModeControl() { - return hideDryModeControl; - } - - public void setHideDryModeControl(Boolean hideDryModeControl) { - this.hideDryModeControl = hideDryModeControl; - } - - public Boolean getHideRoomTemperature() { - return hideRoomTemperature; - } - - public void setHideRoomTemperature(Boolean hideRoomTemperature) { - this.hideRoomTemperature = hideRoomTemperature; - } - - public Boolean getHideSupplyTemperature() { - return hideSupplyTemperature; - } - - public void setHideSupplyTemperature(Boolean hideSupplyTemperature) { - this.hideSupplyTemperature = hideSupplyTemperature; - } - - public Boolean getHideOutdoorTemperature() { - return hideOutdoorTemperature; - } - - public void setHideOutdoorTemperature(Boolean hideOutdoorTemperature) { - this.hideOutdoorTemperature = hideOutdoorTemperature; - } - - public Object getBuildingCountry() { - return buildingCountry; - } - - public void setBuildingCountry(Object buildingCountry) { - this.buildingCountry = buildingCountry; - } - - public Object getOwnerCountry() { - return ownerCountry; - } - - public void setOwnerCountry(Object ownerCountry) { - this.ownerCountry = ownerCountry; - } - - public Integer getAdaptorType() { - return adaptorType; - } - - public void setAdaptorType(Integer adaptorType) { - this.adaptorType = adaptorType; - } - - public Integer getType() { - return type; - } - - public void setType(Integer type) { - this.type = type; - } - - public String getMacAddress() { - return macAddress; - } - - public void setMacAddress(String macAddress) { - this.macAddress = macAddress; - } - - public String getSerialNumber() { - return serialNumber; - } - - public void setSerialNumber(String serialNumber) { - this.serialNumber = serialNumber; - } - - public DeviceProps getDeviceProps() { - return device; - } - - public void setDeviceProps(DeviceProps device) { - this.device = device; - } - - public Integer getDiagnosticMode() { - return diagnosticMode; - } - - public void setDiagnosticMode(Integer diagnosticMode) { - this.diagnosticMode = diagnosticMode; - } - - public Object getDiagnosticEndDate() { - return diagnosticEndDate; - } - - public void setDiagnosticEndDate(Object diagnosticEndDate) { - this.diagnosticEndDate = diagnosticEndDate; - } - - public Integer getLocation() { - return location; - } - - public void setLocation(Integer location) { - this.location = location; - } - - public Object getDetectedCountry() { - return detectedCountry; - } - - public void setDetectedCountry(Object detectedCountry) { - this.detectedCountry = detectedCountry; - } - - public Integer getRegistrations() { - return registrations; - } - - public void setRegistrations(Integer registrations) { - this.registrations = registrations; - } - - public Object getLocalIPAddress() { - return localIPAddress; - } - - public void setLocalIPAddress(Object localIPAddress) { - this.localIPAddress = localIPAddress; - } - - public Integer getTimeZone() { - return timeZone; - } - - public void setTimeZone(Integer timeZone) { - this.timeZone = timeZone; - } - - public Object getRegistReason() { - return registReason; - } - - public void setRegistReason(Object registReason) { - this.registReason = registReason; - } - - public Integer getExpectedCommand() { - return expectedCommand; - } - - public void setExpectedCommand(Integer expectedCommand) { - this.expectedCommand = expectedCommand; - } - - public Integer getRegistRetry() { - return registRetry; - } - - public void setRegistRetry(Integer registRetry) { - this.registRetry = registRetry; - } - - public String getDateCreated() { - return dateCreated; - } - - public void setDateCreated(String dateCreated) { - this.dateCreated = dateCreated; - } - - public Object getFirmwareDeployment() { - return firmwareDeployment; - } - - public void setFirmwareDeployment(Object firmwareDeployment) { - this.firmwareDeployment = firmwareDeployment; - } - - public Boolean getFirmwareUpdateAborted() { - return firmwareUpdateAborted; - } - - public void setFirmwareUpdateAborted(Boolean firmwareUpdateAborted) { - this.firmwareUpdateAborted = firmwareUpdateAborted; - } - - public Permissions getPermissions() { - return permissions; - } - - public void setPermissions(Permissions permissions) { - this.permissions = permissions; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/DeviceProps.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/DeviceProps.java deleted file mode 100644 index 82d15fddfb..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/DeviceProps.java +++ /dev/null @@ -1,1105 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * The {@link DeviceProps} is responsible of JSON data For MELCloud API - * Device Properties. - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ -public class DeviceProps { - - @Expose - private List listHistory24Formatters = null; - - @Expose - private Integer deviceType; - - @Expose - private Boolean canCool; - - @Expose - private Boolean canHeat; - - @Expose - private Boolean canDry; - - @Expose - private Boolean hasAutomaticFanSpeed; - - @Expose - private Boolean airDirectionFunction; - - @Expose - private Boolean swingFunction; - - @Expose - private Integer numberOfFanSpeeds; - - @Expose - private Boolean useTemperatureA; - - @Expose - private Integer temperatureIncrementOverride; - - @Expose - private Double temperatureIncrement; - - @Expose - private Double minTempCoolDry; - - @Expose - private Double maxTempCoolDry; - - @Expose - private Double minTempHeat; - - @Expose - private Double maxTempHeat; - - @Expose - private Double minTempAutomatic; - - @Expose - private Double maxTempAutomatic; - - @Expose - private Boolean legacyDevice; - - @Expose - private Boolean unitSupportsStandbyMode; - - @Expose - private Boolean modelIsAirCurtain; - - @Expose - private Boolean modelSupportsFanSpeed; - - @Expose - private Boolean modelSupportsAuto; - - @Expose - private Boolean modelSupportsHeat; - - @Expose - private Boolean modelSupportsDry; - - @Expose - private Boolean modelSupportsVaneVertical; - - @Expose - private Boolean modelSupportsVaneHorizontal; - - @Expose - private Boolean modelSupportsStandbyMode; - - @Expose - private Boolean modelSupportsEnergyReporting; - - @Expose - private Boolean power; - - @Expose - private Double roomTemperature; - - @Expose - private Double setTemperature; - - @Expose - private Integer actualFanSpeed; - - @Expose - private Integer fanSpeed; - - @Expose - private Boolean automaticFanSpeed; - - @Expose - private Integer vaneVerticalDirection; - - @Expose - private Boolean vaneVerticalSwing; - - @Expose - private Integer vaneHorizontalDirection; - - @Expose - private Boolean vaneHorizontalSwing; - - @Expose - private Integer operationMode; - - @Expose - private Integer effectiveFlags; - - @Expose - private Integer lastEffectiveFlags; - - @Expose - private Boolean inStandbyMode; - - @Expose - private Double defaultCoolingSetTemperature; - - @Expose - private Double defaultHeatingSetTemperature; - - @Expose - private Integer roomTemperatureLabel; - - @Expose - private Boolean hasEnergyConsumedMeter; - - @Expose - private Integer currentEnergyConsumed; - - @Expose - private Integer currentEnergyMode; - - @Expose - private Boolean coolingDisabled; - - @Expose - private Integer minPcycle; - - @Expose - private Integer maxPcycle; - - @Expose - private Integer effectivePCycle; - - @Expose - private Integer maxOutdoorUnits; - - @Expose - private Integer maxIndoorUnits; - - @Expose - private Integer maxTemperatureControlUnits; - - @Expose - private Integer deviceID; - - @Expose - private String macAddress; - - @Expose - private String serialNumber; - - @Expose - private Integer timeZoneID; - - @Expose - private Integer diagnosticMode; - - @Expose - private Object diagnosticEndDate; - - @Expose - private Integer expectedCommand; - - @Expose - private Object owner; - - @Expose - private Object detectedCountry; - - @Expose - private Integer adaptorType; - - @Expose - private Object firmwareDeployment; - - @Expose - private Boolean firmwareUpdateAborted; - - @Expose - private Integer wifiSignalStrength; - - @Expose - private String wifiAdapterStatus; - - @Expose - private String position; - - @Expose - private Integer pCycle; - - @Expose - private Integer recordNumMax; - - @Expose - private String lastTimeStamp; - - @Expose - private Integer errorCode; - - @Expose - private Boolean hasError; - - @Expose - private String lastReset; - - @Expose - private Integer flashWrites; - - @Expose - private Object scene; - - @Expose - private Object sSLExpirationDate; - - @Expose - private Object sPTimeout; - - @Expose - private Object passcode; - - @Expose - private Boolean serverCommunicationDisabled; - - @Expose - private Integer consecutiveUploadErrors; - - @Expose - private Object doNotRespondAfter; - - @Expose - private Integer ownerRoleAccessLevel; - - @Expose - private Integer ownerCountry; - - @Expose - private Object rate1StartTime; - - @Expose - private Object rate2StartTime; - - @Expose - private Integer protocolVersion; - - @Expose - private Integer unitVersion; - - @Expose - private Integer firmwareAppVersion; - - @Expose - private Integer firmwareWebVersion; - - @Expose - private Integer firmwareWlanVersion; - - @Expose - private Boolean hasErrorMessages; - - @Expose - private Boolean hasZone2; - - @Expose - private Boolean offline; - - @Expose - private List units = null; - - public List getListHistory24Formatters() { - return listHistory24Formatters; - } - - public void setListHistory24Formatters(List listHistory24Formatters) { - this.listHistory24Formatters = listHistory24Formatters; - } - - public Integer getDeviceType() { - return deviceType; - } - - public void setDeviceType(Integer deviceType) { - this.deviceType = deviceType; - } - - public Boolean getCanCool() { - return canCool; - } - - public void setCanCool(Boolean canCool) { - this.canCool = canCool; - } - - public Boolean getCanHeat() { - return canHeat; - } - - public void setCanHeat(Boolean canHeat) { - this.canHeat = canHeat; - } - - public Boolean getCanDry() { - return canDry; - } - - public void setCanDry(Boolean canDry) { - this.canDry = canDry; - } - - public Boolean getHasAutomaticFanSpeed() { - return hasAutomaticFanSpeed; - } - - public void setHasAutomaticFanSpeed(Boolean hasAutomaticFanSpeed) { - this.hasAutomaticFanSpeed = hasAutomaticFanSpeed; - } - - public Boolean getAirDirectionFunction() { - return airDirectionFunction; - } - - public void setAirDirectionFunction(Boolean airDirectionFunction) { - this.airDirectionFunction = airDirectionFunction; - } - - public Boolean getSwingFunction() { - return swingFunction; - } - - public void setSwingFunction(Boolean swingFunction) { - this.swingFunction = swingFunction; - } - - public Integer getNumberOfFanSpeeds() { - return numberOfFanSpeeds; - } - - public void setNumberOfFanSpeeds(Integer numberOfFanSpeeds) { - this.numberOfFanSpeeds = numberOfFanSpeeds; - } - - public Boolean getUseTemperatureA() { - return useTemperatureA; - } - - public void setUseTemperatureA(Boolean useTemperatureA) { - this.useTemperatureA = useTemperatureA; - } - - public Integer getTemperatureIncrementOverride() { - return temperatureIncrementOverride; - } - - public void setTemperatureIncrementOverride(Integer temperatureIncrementOverride) { - this.temperatureIncrementOverride = temperatureIncrementOverride; - } - - public Double getTemperatureIncrement() { - return temperatureIncrement; - } - - public void setTemperatureIncrement(Double temperatureIncrement) { - this.temperatureIncrement = temperatureIncrement; - } - - public Double getMinTempCoolDry() { - return minTempCoolDry; - } - - public void setMinTempCoolDry(Double minTempCoolDry) { - this.minTempCoolDry = minTempCoolDry; - } - - public Double getMaxTempCoolDry() { - return maxTempCoolDry; - } - - public void setMaxTempCoolDry(Double maxTempCoolDry) { - this.maxTempCoolDry = maxTempCoolDry; - } - - public Double getMinTempHeat() { - return minTempHeat; - } - - public void setMinTempHeat(Double minTempHeat) { - this.minTempHeat = minTempHeat; - } - - public Double getMaxTempHeat() { - return maxTempHeat; - } - - public void setMaxTempHeat(Double maxTempHeat) { - this.maxTempHeat = maxTempHeat; - } - - public Double getMinTempAutomatic() { - return minTempAutomatic; - } - - public void setMinTempAutomatic(Double minTempAutomatic) { - this.minTempAutomatic = minTempAutomatic; - } - - public Double getMaxTempAutomatic() { - return maxTempAutomatic; - } - - public void setMaxTempAutomatic(Double maxTempAutomatic) { - this.maxTempAutomatic = maxTempAutomatic; - } - - public Boolean getLegacyDevice() { - return legacyDevice; - } - - public void setLegacyDevice(Boolean legacyDevice) { - this.legacyDevice = legacyDevice; - } - - public Boolean getUnitSupportsStandbyMode() { - return unitSupportsStandbyMode; - } - - public void setUnitSupportsStandbyMode(Boolean unitSupportsStandbyMode) { - this.unitSupportsStandbyMode = unitSupportsStandbyMode; - } - - public Boolean getModelIsAirCurtain() { - return modelIsAirCurtain; - } - - public void setModelIsAirCurtain(Boolean modelIsAirCurtain) { - this.modelIsAirCurtain = modelIsAirCurtain; - } - - public Boolean getModelSupportsFanSpeed() { - return modelSupportsFanSpeed; - } - - public void setModelSupportsFanSpeed(Boolean modelSupportsFanSpeed) { - this.modelSupportsFanSpeed = modelSupportsFanSpeed; - } - - public Boolean getModelSupportsAuto() { - return modelSupportsAuto; - } - - public void setModelSupportsAuto(Boolean modelSupportsAuto) { - this.modelSupportsAuto = modelSupportsAuto; - } - - public Boolean getModelSupportsHeat() { - return modelSupportsHeat; - } - - public void setModelSupportsHeat(Boolean modelSupportsHeat) { - this.modelSupportsHeat = modelSupportsHeat; - } - - public Boolean getModelSupportsDry() { - return modelSupportsDry; - } - - public void setModelSupportsDry(Boolean modelSupportsDry) { - this.modelSupportsDry = modelSupportsDry; - } - - public Boolean getModelSupportsVaneVertical() { - return modelSupportsVaneVertical; - } - - public void setModelSupportsVaneVertical(Boolean modelSupportsVaneVertical) { - this.modelSupportsVaneVertical = modelSupportsVaneVertical; - } - - public Boolean getModelSupportsVaneHorizontal() { - return modelSupportsVaneHorizontal; - } - - public void setModelSupportsVaneHorizontal(Boolean modelSupportsVaneHorizontal) { - this.modelSupportsVaneHorizontal = modelSupportsVaneHorizontal; - } - - public Boolean getModelSupportsStandbyMode() { - return modelSupportsStandbyMode; - } - - public void setModelSupportsStandbyMode(Boolean modelSupportsStandbyMode) { - this.modelSupportsStandbyMode = modelSupportsStandbyMode; - } - - public Boolean getModelSupportsEnergyReporting() { - return modelSupportsEnergyReporting; - } - - public void setModelSupportsEnergyReporting(Boolean modelSupportsEnergyReporting) { - this.modelSupportsEnergyReporting = modelSupportsEnergyReporting; - } - - public Boolean getPower() { - return power; - } - - public void setPower(Boolean power) { - this.power = power; - } - - public Double getRoomTemperature() { - return roomTemperature; - } - - public void setRoomTemperature(Double roomTemperature) { - this.roomTemperature = roomTemperature; - } - - public Double getSetTemperature() { - return setTemperature; - } - - public void setSetTemperature(Double setTemperature) { - this.setTemperature = setTemperature; - } - - public Integer getActualFanSpeed() { - return actualFanSpeed; - } - - public void setActualFanSpeed(Integer actualFanSpeed) { - this.actualFanSpeed = actualFanSpeed; - } - - public Integer getFanSpeed() { - return fanSpeed; - } - - public void setFanSpeed(Integer fanSpeed) { - this.fanSpeed = fanSpeed; - } - - public Boolean getAutomaticFanSpeed() { - return automaticFanSpeed; - } - - public void setAutomaticFanSpeed(Boolean automaticFanSpeed) { - this.automaticFanSpeed = automaticFanSpeed; - } - - public Integer getVaneVerticalDirection() { - return vaneVerticalDirection; - } - - public void setVaneVerticalDirection(Integer vaneVerticalDirection) { - this.vaneVerticalDirection = vaneVerticalDirection; - } - - public Boolean getVaneVerticalSwing() { - return vaneVerticalSwing; - } - - public void setVaneVerticalSwing(Boolean vaneVerticalSwing) { - this.vaneVerticalSwing = vaneVerticalSwing; - } - - public Integer getVaneHorizontalDirection() { - return vaneHorizontalDirection; - } - - public void setVaneHorizontalDirection(Integer vaneHorizontalDirection) { - this.vaneHorizontalDirection = vaneHorizontalDirection; - } - - public Boolean getVaneHorizontalSwing() { - return vaneHorizontalSwing; - } - - public void setVaneHorizontalSwing(Boolean vaneHorizontalSwing) { - this.vaneHorizontalSwing = vaneHorizontalSwing; - } - - public Integer getOperationMode() { - return operationMode; - } - - public void setOperationMode(Integer operationMode) { - this.operationMode = operationMode; - } - - public Integer getEffectiveFlags() { - return effectiveFlags; - } - - public void setEffectiveFlags(Integer effectiveFlags) { - this.effectiveFlags = effectiveFlags; - } - - public Integer getLastEffectiveFlags() { - return lastEffectiveFlags; - } - - public void setLastEffectiveFlags(Integer lastEffectiveFlags) { - this.lastEffectiveFlags = lastEffectiveFlags; - } - - public Boolean getInStandbyMode() { - return inStandbyMode; - } - - public void setInStandbyMode(Boolean inStandbyMode) { - this.inStandbyMode = inStandbyMode; - } - - public Double getDefaultCoolingSetTemperature() { - return defaultCoolingSetTemperature; - } - - public void setDefaultCoolingSetTemperature(Double defaultCoolingSetTemperature) { - this.defaultCoolingSetTemperature = defaultCoolingSetTemperature; - } - - public Double getDefaultHeatingSetTemperature() { - return defaultHeatingSetTemperature; - } - - public void setDefaultHeatingSetTemperature(Double defaultHeatingSetTemperature) { - this.defaultHeatingSetTemperature = defaultHeatingSetTemperature; - } - - public Integer getRoomTemperatureLabel() { - return roomTemperatureLabel; - } - - public void setRoomTemperatureLabel(Integer roomTemperatureLabel) { - this.roomTemperatureLabel = roomTemperatureLabel; - } - - public Boolean getHasEnergyConsumedMeter() { - return hasEnergyConsumedMeter; - } - - public void setHasEnergyConsumedMeter(Boolean hasEnergyConsumedMeter) { - this.hasEnergyConsumedMeter = hasEnergyConsumedMeter; - } - - public Integer getCurrentEnergyConsumed() { - return currentEnergyConsumed; - } - - public void setCurrentEnergyConsumed(Integer currentEnergyConsumed) { - this.currentEnergyConsumed = currentEnergyConsumed; - } - - public Integer getCurrentEnergyMode() { - return currentEnergyMode; - } - - public void setCurrentEnergyMode(Integer currentEnergyMode) { - this.currentEnergyMode = currentEnergyMode; - } - - public Boolean getCoolingDisabled() { - return coolingDisabled; - } - - public void setCoolingDisabled(Boolean coolingDisabled) { - this.coolingDisabled = coolingDisabled; - } - - public Integer getMinPcycle() { - return minPcycle; - } - - public void setMinPcycle(Integer minPcycle) { - this.minPcycle = minPcycle; - } - - public Integer getMaxPcycle() { - return maxPcycle; - } - - public void setMaxPcycle(Integer maxPcycle) { - this.maxPcycle = maxPcycle; - } - - public Integer getEffectivePCycle() { - return effectivePCycle; - } - - public void setEffectivePCycle(Integer effectivePCycle) { - this.effectivePCycle = effectivePCycle; - } - - public Integer getMaxOutdoorUnits() { - return maxOutdoorUnits; - } - - public void setMaxOutdoorUnits(Integer maxOutdoorUnits) { - this.maxOutdoorUnits = maxOutdoorUnits; - } - - public Integer getMaxIndoorUnits() { - return maxIndoorUnits; - } - - public void setMaxIndoorUnits(Integer maxIndoorUnits) { - this.maxIndoorUnits = maxIndoorUnits; - } - - public Integer getMaxTemperatureControlUnits() { - return maxTemperatureControlUnits; - } - - public void setMaxTemperatureControlUnits(Integer maxTemperatureControlUnits) { - this.maxTemperatureControlUnits = maxTemperatureControlUnits; - } - - public Integer getDeviceID() { - return deviceID; - } - - public void setDeviceID(Integer deviceID) { - this.deviceID = deviceID; - } - - public String getMacAddress() { - return macAddress; - } - - public void setMacAddress(String macAddress) { - this.macAddress = macAddress; - } - - public String getSerialNumber() { - return serialNumber; - } - - public void setSerialNumber(String serialNumber) { - this.serialNumber = serialNumber; - } - - public Integer getTimeZoneID() { - return timeZoneID; - } - - public void setTimeZoneID(Integer timeZoneID) { - this.timeZoneID = timeZoneID; - } - - public Integer getDiagnosticMode() { - return diagnosticMode; - } - - public void setDiagnosticMode(Integer diagnosticMode) { - this.diagnosticMode = diagnosticMode; - } - - public Object getDiagnosticEndDate() { - return diagnosticEndDate; - } - - public void setDiagnosticEndDate(Object diagnosticEndDate) { - this.diagnosticEndDate = diagnosticEndDate; - } - - public Integer getExpectedCommand() { - return expectedCommand; - } - - public void setExpectedCommand(Integer expectedCommand) { - this.expectedCommand = expectedCommand; - } - - public Object getOwner() { - return owner; - } - - public void setOwner(Object owner) { - this.owner = owner; - } - - public Object getDetectedCountry() { - return detectedCountry; - } - - public void setDetectedCountry(Object detectedCountry) { - this.detectedCountry = detectedCountry; - } - - public Integer getAdaptorType() { - return adaptorType; - } - - public void setAdaptorType(Integer adaptorType) { - this.adaptorType = adaptorType; - } - - public Object getFirmwareDeployment() { - return firmwareDeployment; - } - - public void setFirmwareDeployment(Object firmwareDeployment) { - this.firmwareDeployment = firmwareDeployment; - } - - public Boolean getFirmwareUpdateAborted() { - return firmwareUpdateAborted; - } - - public void setFirmwareUpdateAborted(Boolean firmwareUpdateAborted) { - this.firmwareUpdateAborted = firmwareUpdateAborted; - } - - public Integer getWifiSignalStrength() { - return wifiSignalStrength; - } - - public void setWifiSignalStrength(Integer wifiSignalStrength) { - this.wifiSignalStrength = wifiSignalStrength; - } - - public String getWifiAdapterStatus() { - return wifiAdapterStatus; - } - - public void setWifiAdapterStatus(String wifiAdapterStatus) { - this.wifiAdapterStatus = wifiAdapterStatus; - } - - public String getPosition() { - return position; - } - - public void setPosition(String position) { - this.position = position; - } - - public Integer getPCycle() { - return pCycle; - } - - public void setPCycle(Integer pCycle) { - this.pCycle = pCycle; - } - - public Integer getRecordNumMax() { - return recordNumMax; - } - - public void setRecordNumMax(Integer recordNumMax) { - this.recordNumMax = recordNumMax; - } - - public String getLastTimeStamp() { - return lastTimeStamp; - } - - public void setLastTimeStamp(String lastTimeStamp) { - this.lastTimeStamp = lastTimeStamp; - } - - public Integer getErrorCode() { - return errorCode; - } - - public void setErrorCode(Integer errorCode) { - this.errorCode = errorCode; - } - - public Boolean getHasError() { - return hasError; - } - - public void setHasError(Boolean hasError) { - this.hasError = hasError; - } - - public String getLastReset() { - return lastReset; - } - - public void setLastReset(String lastReset) { - this.lastReset = lastReset; - } - - public Integer getFlashWrites() { - return flashWrites; - } - - public void setFlashWrites(Integer flashWrites) { - this.flashWrites = flashWrites; - } - - public Object getScene() { - return scene; - } - - public void setScene(Object scene) { - this.scene = scene; - } - - public Object getSSLExpirationDate() { - return sSLExpirationDate; - } - - public void setSSLExpirationDate(Object sSLExpirationDate) { - this.sSLExpirationDate = sSLExpirationDate; - } - - public Object getSPTimeout() { - return sPTimeout; - } - - public void setSPTimeout(Object sPTimeout) { - this.sPTimeout = sPTimeout; - } - - public Object getPasscode() { - return passcode; - } - - public void setPasscode(Object passcode) { - this.passcode = passcode; - } - - public Boolean getServerCommunicationDisabled() { - return serverCommunicationDisabled; - } - - public void setServerCommunicationDisabled(Boolean serverCommunicationDisabled) { - this.serverCommunicationDisabled = serverCommunicationDisabled; - } - - public Integer getConsecutiveUploadErrors() { - return consecutiveUploadErrors; - } - - public void setConsecutiveUploadErrors(Integer consecutiveUploadErrors) { - this.consecutiveUploadErrors = consecutiveUploadErrors; - } - - public Object getDoNotRespondAfter() { - return doNotRespondAfter; - } - - public void setDoNotRespondAfter(Object doNotRespondAfter) { - this.doNotRespondAfter = doNotRespondAfter; - } - - public Integer getOwnerRoleAccessLevel() { - return ownerRoleAccessLevel; - } - - public void setOwnerRoleAccessLevel(Integer ownerRoleAccessLevel) { - this.ownerRoleAccessLevel = ownerRoleAccessLevel; - } - - public Integer getOwnerCountry() { - return ownerCountry; - } - - public void setOwnerCountry(Integer ownerCountry) { - this.ownerCountry = ownerCountry; - } - - public Object getRate1StartTime() { - return rate1StartTime; - } - - public void setRate1StartTime(Object rate1StartTime) { - this.rate1StartTime = rate1StartTime; - } - - public Object getRate2StartTime() { - return rate2StartTime; - } - - public void setRate2StartTime(Object rate2StartTime) { - this.rate2StartTime = rate2StartTime; - } - - public Integer getProtocolVersion() { - return protocolVersion; - } - - public void setProtocolVersion(Integer protocolVersion) { - this.protocolVersion = protocolVersion; - } - - public Integer getUnitVersion() { - return unitVersion; - } - - public void setUnitVersion(Integer unitVersion) { - this.unitVersion = unitVersion; - } - - public Integer getFirmwareAppVersion() { - return firmwareAppVersion; - } - - public void setFirmwareAppVersion(Integer firmwareAppVersion) { - this.firmwareAppVersion = firmwareAppVersion; - } - - public Integer getFirmwareWebVersion() { - return firmwareWebVersion; - } - - public void setFirmwareWebVersion(Integer firmwareWebVersion) { - this.firmwareWebVersion = firmwareWebVersion; - } - - public Integer getFirmwareWlanVersion() { - return firmwareWlanVersion; - } - - public void setFirmwareWlanVersion(Integer firmwareWlanVersion) { - this.firmwareWlanVersion = firmwareWlanVersion; - } - - public Boolean getHasErrorMessages() { - return hasErrorMessages; - } - - public void setHasErrorMessages(Boolean hasErrorMessages) { - this.hasErrorMessages = hasErrorMessages; - } - - public Boolean getHasZone2() { - return hasZone2; - } - - public void setHasZone2(Boolean hasZone2) { - this.hasZone2 = hasZone2; - } - - public Boolean getOffline() { - return offline; - } - - public void setOffline(Boolean offline) { - this.offline = offline; - } - - public List getUnits() { - return units; - } - - public void setUnits(List units) { - this.units = units; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/DeviceStatus.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/DeviceStatus.java deleted file mode 100644 index a658b4eddb..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/DeviceStatus.java +++ /dev/null @@ -1,347 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * The {@link DeviceProps} is responsible of JSON data For MELCloud API - * Device Status data - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - * @author Pauli Anttila - Fine tuned expose annotations - */ -public class DeviceStatus { - - @Expose - private Integer effectiveFlags; - - @Expose(serialize = false, deserialize = true) - private Object localIPAddress; - - @Expose(serialize = false, deserialize = true) - private Double roomTemperature; - - @Expose - private Double setTemperature; - - @Expose - private Integer setFanSpeed; - - @Expose - private Integer operationMode; - - @Expose - private Integer vaneHorizontal; - - @Expose - private Integer vaneVertical; - - @Expose - private Object name; - - @Expose(serialize = false, deserialize = true) - private Integer numberOfFanSpeeds; - - @Expose(serialize = false, deserialize = true) - private List weatherObservations = null; - - @Expose(serialize = false, deserialize = true) - private Object errorMessage; - - @Expose(serialize = false, deserialize = true) - private Integer errorCode; - - @Expose(serialize = false, deserialize = true) - private Double defaultHeatingSetTemperature; - - @Expose(serialize = false, deserialize = true) - private Double defaultCoolingSetTemperature; - - @Expose(serialize = false, deserialize = true) - private Boolean hideVaneControls; - - @Expose(serialize = false, deserialize = true) - private Boolean hideDryModeControl; - - @Expose(serialize = false, deserialize = true) - private Integer roomTemperatureLabel; - - @Expose(serialize = false, deserialize = true) - private Boolean inStandbyMode; - - @Expose(serialize = false, deserialize = true) - private Integer temperatureIncrementOverride; - - @Expose - private Integer deviceID; - - @Expose(serialize = false, deserialize = true) - private Integer deviceType; - - @Expose(serialize = false, deserialize = true) - private String lastCommunication; - - @Expose(serialize = false, deserialize = true) - private String nextCommunication; - - @Expose - private Boolean power; - - @Expose - private Boolean hasPendingCommand; - - @Expose(serialize = false, deserialize = true) - private Boolean offline; - - @Expose(serialize = false, deserialize = true) - private Object scene; - - @Expose(serialize = false, deserialize = true) - private Object sceneOwner; - - public Integer getEffectiveFlags() { - return effectiveFlags; - } - - public void setEffectiveFlags(Integer effectiveFlags) { - this.effectiveFlags = effectiveFlags; - } - - public Object getLocalIPAddress() { - return localIPAddress; - } - - public void setLocalIPAddress(Object localIPAddress) { - this.localIPAddress = localIPAddress; - } - - public Double getRoomTemperature() { - return roomTemperature; - } - - public void setRoomTemperature(Double roomTemperature) { - this.roomTemperature = roomTemperature; - } - - public Double getSetTemperature() { - return setTemperature; - } - - public void setSetTemperature(Double setTemperature) { - this.setTemperature = setTemperature; - } - - public Integer getSetFanSpeed() { - return setFanSpeed; - } - - public void setSetFanSpeed(Integer setFanSpeed) { - this.setFanSpeed = setFanSpeed; - } - - public Integer getOperationMode() { - return operationMode; - } - - public void setOperationMode(Integer operationMode) { - this.operationMode = operationMode; - } - - public Integer getVaneHorizontal() { - return vaneHorizontal; - } - - public void setVaneHorizontal(Integer vaneHorizontal) { - this.vaneHorizontal = vaneHorizontal; - } - - public Integer getVaneVertical() { - return vaneVertical; - } - - public void setVaneVertical(Integer vaneVertical) { - this.vaneVertical = vaneVertical; - } - - public Object getName() { - return name; - } - - public void setName(Object name) { - this.name = name; - } - - public Integer getNumberOfFanSpeeds() { - return numberOfFanSpeeds; - } - - public void setNumberOfFanSpeeds(Integer numberOfFanSpeeds) { - this.numberOfFanSpeeds = numberOfFanSpeeds; - } - - public List getWeatherObservations() { - return weatherObservations; - } - - public void setWeatherObservations(List weatherObservations) { - this.weatherObservations = weatherObservations; - } - - public Object getErrorMessage() { - return errorMessage; - } - - public void setErrorMessage(Object errorMessage) { - this.errorMessage = errorMessage; - } - - public Integer getErrorCode() { - return errorCode; - } - - public void setErrorCode(Integer errorCode) { - this.errorCode = errorCode; - } - - public Double getDefaultHeatingSetTemperature() { - return defaultHeatingSetTemperature; - } - - public void setDefaultHeatingSetTemperature(Double defaultHeatingSetTemperature) { - this.defaultHeatingSetTemperature = defaultHeatingSetTemperature; - } - - public Double getDefaultCoolingSetTemperature() { - return defaultCoolingSetTemperature; - } - - public void setDefaultCoolingSetTemperature(Double defaultCoolingSetTemperature) { - this.defaultCoolingSetTemperature = defaultCoolingSetTemperature; - } - - public Boolean getHideVaneControls() { - return hideVaneControls; - } - - public void setHideVaneControls(Boolean hideVaneControls) { - this.hideVaneControls = hideVaneControls; - } - - public Boolean getHideDryModeControl() { - return hideDryModeControl; - } - - public void setHideDryModeControl(Boolean hideDryModeControl) { - this.hideDryModeControl = hideDryModeControl; - } - - public Integer getRoomTemperatureLabel() { - return roomTemperatureLabel; - } - - public void setRoomTemperatureLabel(Integer roomTemperatureLabel) { - this.roomTemperatureLabel = roomTemperatureLabel; - } - - public Boolean getInStandbyMode() { - return inStandbyMode; - } - - public void setInStandbyMode(Boolean inStandbyMode) { - this.inStandbyMode = inStandbyMode; - } - - public Integer getTemperatureIncrementOverride() { - return temperatureIncrementOverride; - } - - public void setTemperatureIncrementOverride(Integer temperatureIncrementOverride) { - this.temperatureIncrementOverride = temperatureIncrementOverride; - } - - public Integer getDeviceID() { - return deviceID; - } - - public void setDeviceID(Integer deviceID) { - this.deviceID = deviceID; - } - - public Integer getDeviceType() { - return deviceType; - } - - public void setDeviceType(Integer deviceType) { - this.deviceType = deviceType; - } - - public String getLastCommunication() { - return lastCommunication; - } - - public void setLastCommunication(String lastCommunication) { - this.lastCommunication = lastCommunication; - } - - public String getNextCommunication() { - return nextCommunication; - } - - public void setNextCommunication(String nextCommunication) { - this.nextCommunication = nextCommunication; - } - - public Boolean getPower() { - return power; - } - - public void setPower(Boolean power) { - this.power = power; - } - - public Boolean getHasPendingCommand() { - return hasPendingCommand; - } - - public void setHasPendingCommand(Boolean hasPendingCommand) { - this.hasPendingCommand = hasPendingCommand; - } - - public Boolean getOffline() { - return offline; - } - - public void setOffline(Boolean offline) { - this.offline = offline; - } - - public Object getScene() { - return scene; - } - - public void setScene(Object scene) { - this.scene = scene; - } - - public Object getSceneOwner() { - return sceneOwner; - } - - public void setSceneOwner(Object sceneOwner) { - this.sceneOwner = sceneOwner; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Floor.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Floor.java deleted file mode 100644 index 2abc707720..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Floor.java +++ /dev/null @@ -1,148 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * {@link Floor} provides floor specific information for JSON data returned from MELCloud API - * Floor Data - * Generated with jsonschema2pojo - * - * @author Wietse van Buitenen - Initial contribution - */ -public class Floor { - - @Expose - private Integer iD; - - @Expose - private String name; - - @Expose - private Integer buildingId; - - @Expose - private Integer accessLevel; - - @Expose - private Boolean directAccess; - - @Expose - private Object endDate; - - @Expose - private List areas = null; - - @Expose - private List devices = null; - - @Expose - private Integer minTemperature; - - @Expose - private Integer maxTemperature; - - @Expose - private Boolean expanded; - - public Integer getID() { - return iD; - } - - public void setID(Integer iD) { - this.iD = iD; - } - - public Integer getBuildingId() { - return buildingId; - } - - public void setBuildingId(Integer buildingId) { - this.buildingId = buildingId; - } - - public Integer getAccessLevel() { - return accessLevel; - } - - public void setAccessLevel(Integer accessLevel) { - this.accessLevel = accessLevel; - } - - public Boolean getDirectAccess() { - return directAccess; - } - - public void setDirectAccess(Boolean directAccess) { - this.directAccess = directAccess; - } - - public Object getEndDate() { - return endDate; - } - - public void setEndDate(Object endDate) { - this.endDate = endDate; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public List getAreas() { - return areas; - } - - public void setAreas(List areas) { - this.areas = areas; - } - - public List getDevices() { - return devices; - } - - public void setDevices(List devices) { - this.devices = devices; - } - - public Integer getMinTemperature() { - return minTemperature; - } - - public void setMinTemperature(Integer minTemperature) { - this.minTemperature = minTemperature; - } - - public Integer getMaxTemperature() { - return maxTemperature; - } - - public void setMaxTemperature(Integer maxTemperature) { - this.maxTemperature = maxTemperature; - } - - public Boolean getExpanded() { - return expanded; - } - - public void setExpanded(Boolean expanded) { - this.expanded = expanded; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/HeatpumpDeviceStatus.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/HeatpumpDeviceStatus.java deleted file mode 100644 index edfaee58e0..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/HeatpumpDeviceStatus.java +++ /dev/null @@ -1,477 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * {@link HeatpumpDeviceStatus} is the JSON data we receive from the MELCloud API - * when performing a request to DeviceType 1. - * Generated with jsonschema2pojo - * - * @author Wietse van Buitenen - Initial contribution - */ -public class HeatpumpDeviceStatus { - @Expose - private Long effectiveFlags; - - @Expose(serialize = false, deserialize = true) - private Object localIPAddress; - - @Expose - private Double setTemperatureZone1; - - @Expose - private Double setTemperatureZone2; - - @Expose(serialize = false, deserialize = true) - private Double roomTemperatureZone1; - - @Expose(serialize = false, deserialize = true) - private Double roomTemperatureZone2; - - @Expose - private Integer operationMode; - - @Expose - private Integer operationModeZone1; - - @Expose - private Integer operationModeZone2; - - @Expose(serialize = false, deserialize = true) - private List weatherObservations = null; - - @Expose(serialize = false, deserialize = true) - private Object errorMessage; - - @Expose(serialize = false, deserialize = true) - private Integer errorCode; - - @Expose - private Double setHeatFlowTemperatureZone1; - - @Expose - private Double setHeatFlowTemperatureZone2; - - @Expose - private Double setCoolFlowTemperatureZone1; - - @Expose - private Double setCoolFlowTemperatureZone2; - - @Expose - private Integer hCControlType; - - @Expose(serialize = false, deserialize = true) - private Double tankWaterTemperature; - - @Expose - private Double setTankWaterTemperature; - - @Expose - private Boolean forcedHotWaterMode; - - @Expose - private Integer unitStatus; - - @Expose - private Double outdoorTemperature; - - @Expose - private Boolean ecoHotWater; - - @Expose - private Object zone1Name; - - @Expose - private Object zone2Name; - - @Expose - private Boolean holidayMode; - - @Expose - private Boolean prohibitZone1; - - @Expose - private Boolean prohibitZone2; - - @Expose - private Boolean prohibitHotWater; - - @Expose - private Integer temperatureIncrementOverride; - - @Expose - private Boolean idleZone1; - - @Expose - private Boolean idleZone2; - - @Expose - private Integer deviceID; - - @Expose - private Integer deviceType; - - @Expose(serialize = false, deserialize = true) - private String lastCommunication; - - @Expose(serialize = false, deserialize = true) - private String nextCommunication; - - @Expose - private Boolean power; - - @Expose(serialize = false, deserialize = true) - private Boolean hasPendingCommand; - - @Expose(serialize = false, deserialize = true) - private Boolean offline; - - @Expose - private Object scene; - - @Expose - private Object sceneOwner; - - public Long getEffectiveFlags() { - return effectiveFlags; - } - - public void setEffectiveFlags(Long effectiveFlags) { - this.effectiveFlags = effectiveFlags; - } - - public Object getLocalIPAddress() { - return localIPAddress; - } - - public void setLocalIPAddress(Object localIPAddress) { - this.localIPAddress = localIPAddress; - } - - public Double getSetTemperatureZone1() { - return setTemperatureZone1; - } - - public void setSetTemperatureZone1(Double setTemperatureZone1) { - this.setTemperatureZone1 = setTemperatureZone1; - } - - public Double getSetTemperatureZone2() { - return setTemperatureZone2; - } - - public void setSetTemperatureZone2(Double setTemperatureZone2) { - this.setTemperatureZone2 = setTemperatureZone2; - } - - public Double getRoomTemperatureZone1() { - return roomTemperatureZone1; - } - - public void setRoomTemperatureZone1(Double roomTemperatureZone1) { - this.roomTemperatureZone1 = roomTemperatureZone1; - } - - public Double getRoomTemperatureZone2() { - return roomTemperatureZone2; - } - - public void setRoomTemperatureZone2(Double roomTemperatureZone2) { - this.roomTemperatureZone2 = roomTemperatureZone2; - } - - public Integer getOperationMode() { - return operationMode; - } - - public void setOperationMode(Integer operationMode) { - this.operationMode = operationMode; - } - - public Integer getOperationModeZone1() { - return operationModeZone1; - } - - public void setOperationModeZone1(Integer operationModeZone1) { - this.operationModeZone1 = operationModeZone1; - } - - public Integer getOperationModeZone2() { - return operationModeZone2; - } - - public void setOperationModeZone2(Integer operationModeZone2) { - this.operationModeZone2 = operationModeZone2; - } - - public List getWeatherObservations() { - return weatherObservations; - } - - public void setWeatherObservations(List weatherObservations) { - this.weatherObservations = weatherObservations; - } - - public Object getErrorMessage() { - return errorMessage; - } - - public void setErrorMessage(Object errorMessage) { - this.errorMessage = errorMessage; - } - - public Integer getErrorCode() { - return errorCode; - } - - public void setErrorCode(Integer errorCode) { - this.errorCode = errorCode; - } - - public Double getSetHeatFlowTemperatureZone1() { - return setHeatFlowTemperatureZone1; - } - - public void setSetHeatFlowTemperatureZone1(Double setHeatFlowTemperatureZone1) { - this.setHeatFlowTemperatureZone1 = setHeatFlowTemperatureZone1; - } - - public Double getSetHeatFlowTemperatureZone2() { - return setHeatFlowTemperatureZone2; - } - - public void setSetHeatFlowTemperatureZone2(Double setHeatFlowTemperatureZone2) { - this.setHeatFlowTemperatureZone2 = setHeatFlowTemperatureZone2; - } - - public Double getSetCoolFlowTemperatureZone1() { - return setCoolFlowTemperatureZone1; - } - - public void setSetCoolFlowTemperatureZone1(Double setCoolFlowTemperatureZone1) { - this.setCoolFlowTemperatureZone1 = setCoolFlowTemperatureZone1; - } - - public Double getSetCoolFlowTemperatureZone2() { - return setCoolFlowTemperatureZone2; - } - - public void setSetCoolFlowTemperatureZone2(Double setCoolFlowTemperatureZone2) { - this.setCoolFlowTemperatureZone2 = setCoolFlowTemperatureZone2; - } - - public Integer getHCControlType() { - return hCControlType; - } - - public void setHCControlType(Integer hCControlType) { - this.hCControlType = hCControlType; - } - - public Double getTankWaterTemperature() { - return tankWaterTemperature; - } - - public void setTankWaterTemperature(Double tankWaterTemperature) { - this.tankWaterTemperature = tankWaterTemperature; - } - - public Double getSetTankWaterTemperature() { - return setTankWaterTemperature; - } - - public void setSetTankWaterTemperature(Double setTankWaterTemperature) { - this.setTankWaterTemperature = setTankWaterTemperature; - } - - public Boolean getForcedHotWaterMode() { - return forcedHotWaterMode; - } - - public void setForcedHotWaterMode(Boolean forcedHotWaterMode) { - this.forcedHotWaterMode = forcedHotWaterMode; - } - - public Integer getUnitStatus() { - return unitStatus; - } - - public void setUnitStatus(Integer unitStatus) { - this.unitStatus = unitStatus; - } - - public Double getOutdoorTemperature() { - return outdoorTemperature; - } - - public void setOutdoorTemperature(Double outdoorTemperature) { - this.outdoorTemperature = outdoorTemperature; - } - - public Boolean getEcoHotWater() { - return ecoHotWater; - } - - public void setEcoHotWater(Boolean ecoHotWater) { - this.ecoHotWater = ecoHotWater; - } - - public Object getZone1Name() { - return zone1Name; - } - - public void setZone1Name(Object zone1Name) { - this.zone1Name = zone1Name; - } - - public Object getZone2Name() { - return zone2Name; - } - - public void setZone2Name(Object zone2Name) { - this.zone2Name = zone2Name; - } - - public Boolean getHolidayMode() { - return holidayMode; - } - - public void setHolidayMode(Boolean holidayMode) { - this.holidayMode = holidayMode; - } - - public Boolean getProhibitZone1() { - return prohibitZone1; - } - - public void setProhibitZone1(Boolean prohibitZone1) { - this.prohibitZone1 = prohibitZone1; - } - - public Boolean getProhibitZone2() { - return prohibitZone2; - } - - public void setProhibitZone2(Boolean prohibitZone2) { - this.prohibitZone2 = prohibitZone2; - } - - public Boolean getProhibitHotWater() { - return prohibitHotWater; - } - - public void setProhibitHotWater(Boolean prohibitHotWater) { - this.prohibitHotWater = prohibitHotWater; - } - - public Integer getTemperatureIncrementOverride() { - return temperatureIncrementOverride; - } - - public void setTemperatureIncrementOverride(Integer temperatureIncrementOverride) { - this.temperatureIncrementOverride = temperatureIncrementOverride; - } - - public Boolean getIdleZone1() { - return idleZone1; - } - - public void setIdleZone1(Boolean idleZone1) { - this.idleZone1 = idleZone1; - } - - public Boolean getIdleZone2() { - return idleZone2; - } - - public void setIdleZone2(Boolean idleZone2) { - this.idleZone2 = idleZone2; - } - - public Integer getDeviceID() { - return deviceID; - } - - public void setDeviceID(Integer deviceID) { - this.deviceID = deviceID; - } - - public Integer getDeviceType() { - return deviceType; - } - - public void setDeviceType(Integer deviceType) { - this.deviceType = deviceType; - } - - public String getLastCommunication() { - return lastCommunication; - } - - public void setLastCommunication(String lastCommunication) { - this.lastCommunication = lastCommunication; - } - - public String getNextCommunication() { - return nextCommunication; - } - - public void setNextCommunication(String nextCommunication) { - this.nextCommunication = nextCommunication; - } - - public Boolean getPower() { - return power; - } - - public void setPower(Boolean power) { - this.power = power; - } - - public Boolean getHasPendingCommand() { - return hasPendingCommand; - } - - public void setHasPendingCommand(Boolean hasPendingCommand) { - this.hasPendingCommand = hasPendingCommand; - } - - public Boolean getOffline() { - return offline; - } - - public void setOffline(Boolean offline) { - this.offline = offline; - } - - public Object getScene() { - return scene; - } - - public void setScene(Object scene) { - this.scene = scene; - } - - public Object getSceneOwner() { - return sceneOwner; - } - - public void setSceneOwner(Object sceneOwner) { - this.sceneOwner = sceneOwner; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/ListDevicesResponse.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/ListDevicesResponse.java deleted file mode 100644 index 1ff74bf2ad..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/ListDevicesResponse.java +++ /dev/null @@ -1,445 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import com.google.gson.annotations.Expose; -import com.google.gson.annotations.SerializedName; - -/** - * The {@link ListDevicesResponse} is responsible of JSON data For MELCloud API - * Response of Devices List. - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ -public class ListDevicesResponse { - - @Expose - private Integer iD; - - @Expose - private String name; - - @Expose - private String addressLine1; - - @Expose - private Object addressLine2; - - @Expose - private String city; - - @Expose - private String postcode; - - @Expose - private Double latitude; - - @Expose - private Double longitude; - - @Expose - private Object district; - - @Expose - private Boolean fPDefined; - - @Expose - private Boolean fPEnabled; - - @Expose - private Integer fPMinTemperature; - - @Expose - private Integer fPMaxTemperature; - - @Expose - private Boolean hMDefined; - - @Expose - private Boolean hMEnabled; - - @Expose - private Object hMStartDate; - - @Expose - private Object hMEndDate; - - @Expose - private Integer buildingType; - - @Expose - private Integer propertyType; - - @Expose - private String dateBuilt; - - @Expose - private Boolean hasGasSupply; - - @Expose - private String locationLookupDate; - - @Expose - private Integer country; - - @Expose - private Integer timeZoneContinent; - - @Expose - private Integer timeZoneCity; - - @Expose - private Integer timeZone; - - @Expose - private Integer location; - - @Expose - private Boolean coolingDisabled; - - @Expose - private Boolean expanded; - - @Expose - private Structure structure; - - @Expose - private Integer accessLevel; - - @Expose - private Boolean directAccess; - - @Expose - private Integer minTemperature; - - @Expose - private Integer maxTemperature; - - @Expose - private Object owner; - - @Expose - private String endDate; - - @SerializedName("iDateBuilt") - @Expose - private Object iDateBuilt; - - @Expose - private QuantizedCoordinates quantizedCoordinates; - - public Integer getID() { - return iD; - } - - public void setID(Integer iD) { - this.iD = iD; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getAddressLine1() { - return addressLine1; - } - - public void setAddressLine1(String addressLine1) { - this.addressLine1 = addressLine1; - } - - public Object getAddressLine2() { - return addressLine2; - } - - public void setAddressLine2(Object addressLine2) { - this.addressLine2 = addressLine2; - } - - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - public String getPostcode() { - return postcode; - } - - public void setPostcode(String postcode) { - this.postcode = postcode; - } - - public Double getLatitude() { - return latitude; - } - - public void setLatitude(Double latitude) { - this.latitude = latitude; - } - - public Double getLongitude() { - return longitude; - } - - public void setLongitude(Double longitude) { - this.longitude = longitude; - } - - public Object getDistrict() { - return district; - } - - public void setDistrict(Object district) { - this.district = district; - } - - public Boolean getFPDefined() { - return fPDefined; - } - - public void setFPDefined(Boolean fPDefined) { - this.fPDefined = fPDefined; - } - - public Boolean getFPEnabled() { - return fPEnabled; - } - - public void setFPEnabled(Boolean fPEnabled) { - this.fPEnabled = fPEnabled; - } - - public Integer getFPMinTemperature() { - return fPMinTemperature; - } - - public void setFPMinTemperature(Integer fPMinTemperature) { - this.fPMinTemperature = fPMinTemperature; - } - - public Integer getFPMaxTemperature() { - return fPMaxTemperature; - } - - public void setFPMaxTemperature(Integer fPMaxTemperature) { - this.fPMaxTemperature = fPMaxTemperature; - } - - public Boolean getHMDefined() { - return hMDefined; - } - - public void setHMDefined(Boolean hMDefined) { - this.hMDefined = hMDefined; - } - - public Boolean getHMEnabled() { - return hMEnabled; - } - - public void setHMEnabled(Boolean hMEnabled) { - this.hMEnabled = hMEnabled; - } - - public Object getHMStartDate() { - return hMStartDate; - } - - public void setHMStartDate(Object hMStartDate) { - this.hMStartDate = hMStartDate; - } - - public Object getHMEndDate() { - return hMEndDate; - } - - public void setHMEndDate(Object hMEndDate) { - this.hMEndDate = hMEndDate; - } - - public Integer getBuildingType() { - return buildingType; - } - - public void setBuildingType(Integer buildingType) { - this.buildingType = buildingType; - } - - public Integer getPropertyType() { - return propertyType; - } - - public void setPropertyType(Integer propertyType) { - this.propertyType = propertyType; - } - - public String getDateBuilt() { - return dateBuilt; - } - - public void setDateBuilt(String dateBuilt) { - this.dateBuilt = dateBuilt; - } - - public Boolean getHasGasSupply() { - return hasGasSupply; - } - - public void setHasGasSupply(Boolean hasGasSupply) { - this.hasGasSupply = hasGasSupply; - } - - public String getLocationLookupDate() { - return locationLookupDate; - } - - public void setLocationLookupDate(String locationLookupDate) { - this.locationLookupDate = locationLookupDate; - } - - public Integer getCountry() { - return country; - } - - public void setCountry(Integer country) { - this.country = country; - } - - public Integer getTimeZoneContinent() { - return timeZoneContinent; - } - - public void setTimeZoneContinent(Integer timeZoneContinent) { - this.timeZoneContinent = timeZoneContinent; - } - - public Integer getTimeZoneCity() { - return timeZoneCity; - } - - public void setTimeZoneCity(Integer timeZoneCity) { - this.timeZoneCity = timeZoneCity; - } - - public Integer getTimeZone() { - return timeZone; - } - - public void setTimeZone(Integer timeZone) { - this.timeZone = timeZone; - } - - public Integer getLocation() { - return location; - } - - public void setLocation(Integer location) { - this.location = location; - } - - public Boolean getCoolingDisabled() { - return coolingDisabled; - } - - public void setCoolingDisabled(Boolean coolingDisabled) { - this.coolingDisabled = coolingDisabled; - } - - public Boolean getExpanded() { - return expanded; - } - - public void setExpanded(Boolean expanded) { - this.expanded = expanded; - } - - public Structure getStructure() { - return structure; - } - - public void setStructure(Structure structure) { - this.structure = structure; - } - - public Integer getAccessLevel() { - return accessLevel; - } - - public void setAccessLevel(Integer accessLevel) { - this.accessLevel = accessLevel; - } - - public Boolean getDirectAccess() { - return directAccess; - } - - public void setDirectAccess(Boolean directAccess) { - this.directAccess = directAccess; - } - - public Integer getMinTemperature() { - return minTemperature; - } - - public void setMinTemperature(Integer minTemperature) { - this.minTemperature = minTemperature; - } - - public Integer getMaxTemperature() { - return maxTemperature; - } - - public void setMaxTemperature(Integer maxTemperature) { - this.maxTemperature = maxTemperature; - } - - public Object getOwner() { - return owner; - } - - public void setOwner(Object owner) { - this.owner = owner; - } - - public String getEndDate() { - return endDate; - } - - public void setEndDate(String endDate) { - this.endDate = endDate; - } - - public Object getIDateBuilt() { - return iDateBuilt; - } - - public void setIDateBuilt(Object iDateBuilt) { - this.iDateBuilt = iDateBuilt; - } - - public QuantizedCoordinates getQuantizedCoordinates() { - return quantizedCoordinates; - } - - public void setQuantizedCoordinates(QuantizedCoordinates quantizedCoordinates) { - this.quantizedCoordinates = quantizedCoordinates; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/LoginClientResponse.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/LoginClientResponse.java deleted file mode 100644 index c9e0ac0647..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/LoginClientResponse.java +++ /dev/null @@ -1,159 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * The {@link LoginClientResponse} is responsible of JSON data For MELCloud API - * Response Data of Login. - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ -public class LoginClientResponse { - - @Expose - private Object errorId; - - @Expose - private Object errorMessage; - - @Expose - private Integer loginStatus; - - @Expose - private Integer userId; - - @Expose - private Object randomKey; - - @Expose - private Object appVersionAnnouncement; - - @Expose - private LoginData loginData; - - @Expose - private List listPendingInvite = null; - - @Expose - private List listOwnershipChangeRequest = null; - - @Expose - private List listPendingAnnouncement = null; - - @Expose - private Integer loginMinutes; - - @Expose - private Integer loginAttempts; - - public Object getErrorId() { - return errorId; - } - - public void setErrorId(Object errorId) { - this.errorId = errorId; - } - - public Object getErrorMessage() { - return errorMessage; - } - - public void setErrorMessage(Object errorMessage) { - this.errorMessage = errorMessage; - } - - public Integer getLoginStatus() { - return loginStatus; - } - - public void setLoginStatus(Integer loginStatus) { - this.loginStatus = loginStatus; - } - - public Integer getUserId() { - return userId; - } - - public void setUserId(Integer userId) { - this.userId = userId; - } - - public Object getRandomKey() { - return randomKey; - } - - public void setRandomKey(Object randomKey) { - this.randomKey = randomKey; - } - - public Object getAppVersionAnnouncement() { - return appVersionAnnouncement; - } - - public void setAppVersionAnnouncement(Object appVersionAnnouncement) { - this.appVersionAnnouncement = appVersionAnnouncement; - } - - public LoginData getLoginData() { - return loginData; - } - - public void setLoginData(LoginData loginData) { - this.loginData = loginData; - } - - public List getListPendingInvite() { - return listPendingInvite; - } - - public void setListPendingInvite(List listPendingInvite) { - this.listPendingInvite = listPendingInvite; - } - - public List getListOwnershipChangeRequest() { - return listOwnershipChangeRequest; - } - - public void setListOwnershipChangeRequest(List listOwnershipChangeRequest) { - this.listOwnershipChangeRequest = listOwnershipChangeRequest; - } - - public List getListPendingAnnouncement() { - return listPendingAnnouncement; - } - - public void setListPendingAnnouncement(List listPendingAnnouncement) { - this.listPendingAnnouncement = listPendingAnnouncement; - } - - public Integer getLoginMinutes() { - return loginMinutes; - } - - public void setLoginMinutes(Integer loginMinutes) { - this.loginMinutes = loginMinutes; - } - - public Integer getLoginAttempts() { - return loginAttempts; - } - - public void setLoginAttempts(Integer loginAttempts) { - this.loginAttempts = loginAttempts; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/LoginData.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/LoginData.java deleted file mode 100644 index 5c766be09f..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/LoginData.java +++ /dev/null @@ -1,509 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import com.google.gson.annotations.Expose; - -/** - * The {@link LoginData} is responsible of JSON data For MELCloud API - * LoginData for Login Request. - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ -public class LoginData { - - @Expose - private String contextKey; - - @Expose - private Integer client; - - @Expose - private Integer terms; - - @Expose - private Integer aL; - - @Expose - private Integer mL; - - @Expose - private Boolean cMI; - - @Expose - private Boolean isStaff; - - @Expose - private Boolean cUTF; - - @Expose - private Boolean cAA; - - @Expose - private Boolean receiveCountryNotifications; - - @Expose - private Boolean receiveAllNotifications; - - @Expose - private Boolean cACA; - - @Expose - private Boolean cAGA; - - @Expose - private Integer maximumDevices; - - @Expose - private Boolean showDiagnostics; - - @Expose - private Integer language; - - @Expose - private Integer country; - - @Expose - private Integer realClient; - - @Expose - private String name; - - @Expose - private Boolean useFahrenheit; - - @Expose - private Integer duration; - - @Expose - private String expiry; - - @Expose - private Boolean cMSC; - - @Expose - private Object partnerApplicationVersion; - - @Expose - private Boolean emailSettingsReminderShown; - - @Expose - private Integer emailUnitErrors; - - @Expose - private Integer emailCommsErrors; - - @Expose - private Boolean isImpersonated; - - @Expose - private String languageCode; - - @Expose - private String countryName; - - @Expose - private String currencySymbol; - - @Expose - private String supportEmailAddress; - - @Expose - private String dateSeperator; - - @Expose - private String timeSeperator; - - @Expose - private String atwLogoFile; - - @Expose - private Boolean dECCReport; - - @Expose - private Boolean cSVReport1min; - - @Expose - private Boolean hidePresetPanel; - - @Expose - private Boolean emailSettingsReminderRequired; - - @Expose - private Object termsText; - - @Expose - private Boolean mapView; - - @Expose - private Integer mapZoom; - - @Expose - private Double mapLongitude; - - @Expose - private Double mapLatitude; - - public String getContextKey() { - return contextKey; - } - - public void setContextKey(String contextKey) { - this.contextKey = contextKey; - } - - public Integer getClient() { - return client; - } - - public void setClient(Integer client) { - this.client = client; - } - - public Integer getTerms() { - return terms; - } - - public void setTerms(Integer terms) { - this.terms = terms; - } - - public Integer getAL() { - return aL; - } - - public void setAL(Integer aL) { - this.aL = aL; - } - - public Integer getML() { - return mL; - } - - public void setML(Integer mL) { - this.mL = mL; - } - - public Boolean getCMI() { - return cMI; - } - - public void setCMI(Boolean cMI) { - this.cMI = cMI; - } - - public Boolean getIsStaff() { - return isStaff; - } - - public void setIsStaff(Boolean isStaff) { - this.isStaff = isStaff; - } - - public Boolean getCUTF() { - return cUTF; - } - - public void setCUTF(Boolean cUTF) { - this.cUTF = cUTF; - } - - public Boolean getCAA() { - return cAA; - } - - public void setCAA(Boolean cAA) { - this.cAA = cAA; - } - - public Boolean getReceiveCountryNotifications() { - return receiveCountryNotifications; - } - - public void setReceiveCountryNotifications(Boolean receiveCountryNotifications) { - this.receiveCountryNotifications = receiveCountryNotifications; - } - - public Boolean getReceiveAllNotifications() { - return receiveAllNotifications; - } - - public void setReceiveAllNotifications(Boolean receiveAllNotifications) { - this.receiveAllNotifications = receiveAllNotifications; - } - - public Boolean getCACA() { - return cACA; - } - - public void setCACA(Boolean cACA) { - this.cACA = cACA; - } - - public Boolean getCAGA() { - return cAGA; - } - - public void setCAGA(Boolean cAGA) { - this.cAGA = cAGA; - } - - public Integer getMaximumDevices() { - return maximumDevices; - } - - public void setMaximumDevices(Integer maximumDevices) { - this.maximumDevices = maximumDevices; - } - - public Boolean getShowDiagnostics() { - return showDiagnostics; - } - - public void setShowDiagnostics(Boolean showDiagnostics) { - this.showDiagnostics = showDiagnostics; - } - - public Integer getLanguage() { - return language; - } - - public void setLanguage(Integer language) { - this.language = language; - } - - public Integer getCountry() { - return country; - } - - public void setCountry(Integer country) { - this.country = country; - } - - public Integer getRealClient() { - return realClient; - } - - public void setRealClient(Integer realClient) { - this.realClient = realClient; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Boolean getUseFahrenheit() { - return useFahrenheit; - } - - public void setUseFahrenheit(Boolean useFahrenheit) { - this.useFahrenheit = useFahrenheit; - } - - public Integer getDuration() { - return duration; - } - - public void setDuration(Integer duration) { - this.duration = duration; - } - - public String getExpiry() { - return expiry; - } - - public void setExpiry(String expiry) { - this.expiry = expiry; - } - - public Boolean getCMSC() { - return cMSC; - } - - public void setCMSC(Boolean cMSC) { - this.cMSC = cMSC; - } - - public Object getPartnerApplicationVersion() { - return partnerApplicationVersion; - } - - public void setPartnerApplicationVersion(Object partnerApplicationVersion) { - this.partnerApplicationVersion = partnerApplicationVersion; - } - - public Boolean getEmailSettingsReminderShown() { - return emailSettingsReminderShown; - } - - public void setEmailSettingsReminderShown(Boolean emailSettingsReminderShown) { - this.emailSettingsReminderShown = emailSettingsReminderShown; - } - - public Integer getEmailUnitErrors() { - return emailUnitErrors; - } - - public void setEmailUnitErrors(Integer emailUnitErrors) { - this.emailUnitErrors = emailUnitErrors; - } - - public Integer getEmailCommsErrors() { - return emailCommsErrors; - } - - public void setEmailCommsErrors(Integer emailCommsErrors) { - this.emailCommsErrors = emailCommsErrors; - } - - public Boolean getIsImpersonated() { - return isImpersonated; - } - - public void setIsImpersonated(Boolean isImpersonated) { - this.isImpersonated = isImpersonated; - } - - public String getLanguageCode() { - return languageCode; - } - - public void setLanguageCode(String languageCode) { - this.languageCode = languageCode; - } - - public String getCountryName() { - return countryName; - } - - public void setCountryName(String countryName) { - this.countryName = countryName; - } - - public String getCurrencySymbol() { - return currencySymbol; - } - - public void setCurrencySymbol(String currencySymbol) { - this.currencySymbol = currencySymbol; - } - - public String getSupportEmailAddress() { - return supportEmailAddress; - } - - public void setSupportEmailAddress(String supportEmailAddress) { - this.supportEmailAddress = supportEmailAddress; - } - - public String getDateSeperator() { - return dateSeperator; - } - - public void setDateSeperator(String dateSeperator) { - this.dateSeperator = dateSeperator; - } - - public String getTimeSeperator() { - return timeSeperator; - } - - public void setTimeSeperator(String timeSeperator) { - this.timeSeperator = timeSeperator; - } - - public String getAtwLogoFile() { - return atwLogoFile; - } - - public void setAtwLogoFile(String atwLogoFile) { - this.atwLogoFile = atwLogoFile; - } - - public Boolean getDECCReport() { - return dECCReport; - } - - public void setDECCReport(Boolean dECCReport) { - this.dECCReport = dECCReport; - } - - public Boolean getCSVReport1min() { - return cSVReport1min; - } - - public void setCSVReport1min(Boolean cSVReport1min) { - this.cSVReport1min = cSVReport1min; - } - - public Boolean getHidePresetPanel() { - return hidePresetPanel; - } - - public void setHidePresetPanel(Boolean hidePresetPanel) { - this.hidePresetPanel = hidePresetPanel; - } - - public Boolean getEmailSettingsReminderRequired() { - return emailSettingsReminderRequired; - } - - public void setEmailSettingsReminderRequired(Boolean emailSettingsReminderRequired) { - this.emailSettingsReminderRequired = emailSettingsReminderRequired; - } - - public Object getTermsText() { - return termsText; - } - - public void setTermsText(Object termsText) { - this.termsText = termsText; - } - - public Boolean getMapView() { - return mapView; - } - - public void setMapView(Boolean mapView) { - this.mapView = mapView; - } - - public Integer getMapZoom() { - return mapZoom; - } - - public void setMapZoom(Integer mapZoom) { - this.mapZoom = mapZoom; - } - - public Double getMapLongitude() { - return mapLongitude; - } - - public void setMapLongitude(Double mapLongitude) { - this.mapLongitude = mapLongitude; - } - - public Double getMapLatitude() { - return mapLatitude; - } - - public void setMapLatitude(Double mapLatitude) { - this.mapLatitude = mapLatitude; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Preset.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Preset.java deleted file mode 100644 index 612887203e..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Preset.java +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import com.google.gson.annotations.Expose; - -/** - * The {@link Preset} is responsible of JSON data For MELCloud API - * Preset data - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ -public class Preset { - - @Expose - private Double setTemperature; - - @Expose - private Boolean power; - - @Expose - private Integer operationMode; - - @Expose - private Integer vaneHorizontal; - - @Expose - private Integer vaneVertical; - - @Expose - private Integer fanSpeed; - - @Expose - private Integer iD; - - @Expose - private Integer client; - - @Expose - private Integer deviceLocation; - - @Expose - private Integer number; - - @Expose - private String configuration; - - @Expose - private String numberDescription; - - public Double getSetTemperature() { - return setTemperature; - } - - public void setSetTemperature(Double setTemperature) { - this.setTemperature = setTemperature; - } - - public Boolean getPower() { - return power; - } - - public void setPower(Boolean power) { - this.power = power; - } - - public Integer getOperationMode() { - return operationMode; - } - - public void setOperationMode(Integer operationMode) { - this.operationMode = operationMode; - } - - public Integer getVaneHorizontal() { - return vaneHorizontal; - } - - public void setVaneHorizontal(Integer vaneHorizontal) { - this.vaneHorizontal = vaneHorizontal; - } - - public Integer getVaneVertical() { - return vaneVertical; - } - - public void setVaneVertical(Integer vaneVertical) { - this.vaneVertical = vaneVertical; - } - - public Integer getFanSpeed() { - return fanSpeed; - } - - public void setFanSpeed(Integer fanSpeed) { - this.fanSpeed = fanSpeed; - } - - public Integer getID() { - return iD; - } - - public void setID(Integer iD) { - this.iD = iD; - } - - public Integer getClient() { - return client; - } - - public void setClient(Integer client) { - this.client = client; - } - - public Integer getDeviceLocation() { - return deviceLocation; - } - - public void setDeviceLocation(Integer deviceLocation) { - this.deviceLocation = deviceLocation; - } - - public Integer getNumber() { - return number; - } - - public void setNumber(Integer number) { - this.number = number; - } - - public String getConfiguration() { - return configuration; - } - - public void setConfiguration(String configuration) { - this.configuration = configuration; - } - - public String getNumberDescription() { - return numberDescription; - } - - public void setNumberDescription(String numberDescription) { - this.numberDescription = numberDescription; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/QuantizedCoordinates.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/QuantizedCoordinates.java deleted file mode 100644 index c3b1ca3075..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/QuantizedCoordinates.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import com.google.gson.annotations.Expose; - -/** - * The {@link QuantizedCoordinates} is responsible of JSON data For MELCloud API - * QuantizedCoordinates data - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ -public class QuantizedCoordinates { - - @Expose - private Double latitude; - - @Expose - private Double longitude; - - public Double getLatitude() { - return latitude; - } - - public void setLatitude(Double latitude) { - this.latitude = latitude; - } - - public Double getLongitude() { - return longitude; - } - - public void setLongitude(Double longitude) { - this.longitude = longitude; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Structure.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Structure.java deleted file mode 100644 index b48cafec53..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/Structure.java +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import java.util.List; - -import com.google.gson.annotations.Expose; - -/** - * The {@link Structure} is responsible of JSON data For MELCloud API - * Structure Data - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - * @author Wietse van Buitenen - Add Floor and Area - */ -public class Structure { - - @Expose - private List floors = null; - - @Expose - private List areas = null; - - @Expose - private List devices = null; - - @Expose - private List clients = null; - - public List getFloors() { - return floors; - } - - public void setFloors(List floors) { - this.floors = floors; - } - - public List getAreas() { - return areas; - } - - public void setAreas(List areas) { - this.areas = areas; - } - - public List getDevices() { - return devices; - } - - public void setDevices(List devices) { - this.devices = devices; - } - - public List getClients() { - return clients; - } - - public void setClients(List clients) { - this.clients = clients; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/WeatherObservation.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/WeatherObservation.java deleted file mode 100644 index 4e167226e6..0000000000 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/api/json/WeatherObservation.java +++ /dev/null @@ -1,146 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.melcloud.internal.api.json; - -import com.google.gson.annotations.Expose; - -/** - * The {@link Structure} is responsible of JSON data For MELCloud API - * WeatherObservation Data - * Generated with jsonschema2pojo - * - * @author Luca Calcaterra - Initial contribution - */ -public class WeatherObservation { - - @Expose - private String date; - - @Expose - private String sunrise; - - @Expose - private String sunset; - - @Expose - private Integer condition; - - @Expose - private Integer iD; - - @Expose - private Integer humidity; - - @Expose - private Integer temperature; - - @Expose - private String icon; - - @Expose - private String conditionName; - - @Expose - private Integer day; - - @Expose - private Integer weatherType; - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public String getSunrise() { - return sunrise; - } - - public void setSunrise(String sunrise) { - this.sunrise = sunrise; - } - - public String getSunset() { - return sunset; - } - - public void setSunset(String sunset) { - this.sunset = sunset; - } - - public Integer getCondition() { - return condition; - } - - public void setCondition(Integer condition) { - this.condition = condition; - } - - public Integer getID() { - return iD; - } - - public void setID(Integer iD) { - this.iD = iD; - } - - public Integer getHumidity() { - return humidity; - } - - public void setHumidity(Integer humidity) { - this.humidity = humidity; - } - - public Integer getTemperature() { - return temperature; - } - - public void setTemperature(Integer temperature) { - this.temperature = temperature; - } - - public String getIcon() { - return icon; - } - - public void setIcon(String icon) { - this.icon = icon; - } - - public String getConditionName() { - return conditionName; - } - - public void setConditionName(String conditionName) { - this.conditionName = conditionName; - } - - public Integer getDay() { - return day; - } - - public void setDay(Integer day) { - this.day = day; - } - - public Integer getWeatherType() { - return weatherType; - } - - public void setWeatherType(Integer weatherType) { - this.weatherType = weatherType; - } -} diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AcDeviceConfig.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AcDeviceConfig.java index d48592d907..b568913376 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AcDeviceConfig.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AcDeviceConfig.java @@ -12,17 +12,21 @@ */ package org.openhab.binding.melcloud.internal.config; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; + /** * Config class for an A.C. device. * * @author Pauli Anttila - Initial Contribution * */ +@NonNullByDefault public class AcDeviceConfig { - public Integer deviceID; - public Integer buildingID; - public Integer pollingInterval; + public Integer deviceID = 0; + public @Nullable Integer buildingID; + public Integer pollingInterval = 360; @Override public String toString() { diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AccountConfig.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AccountConfig.java index e6f41dd5bd..cbb5081d42 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AccountConfig.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/AccountConfig.java @@ -12,17 +12,20 @@ */ package org.openhab.binding.melcloud.internal.config; +import org.eclipse.jdt.annotation.NonNullByDefault; + /** * Config class for MELCloud account parameters. * * @author Pauli Anttila - Initial Contribution * */ +@NonNullByDefault public class AccountConfig { - public String username; - public String password; - public int language; + public String username = ""; + public String password = ""; + public int language = 0; @Override public String toString() { @@ -30,9 +33,6 @@ public class AccountConfig { } private String getPasswordForPrinting() { - if (password != null) { - return password.isEmpty() ? "" : "*********"; - } - return ""; + return password.isEmpty() ? "" : "*********"; } } diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/HeatpumpDeviceConfig.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/HeatpumpDeviceConfig.java index 6fdd0eea04..f3abda22ca 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/HeatpumpDeviceConfig.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/config/HeatpumpDeviceConfig.java @@ -12,16 +12,20 @@ */ package org.openhab.binding.melcloud.internal.config; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; + /** * Config class for a Heatpump device. * * @author Wietse van Buitenen - Initial Contribution * */ +@NonNullByDefault public class HeatpumpDeviceConfig { - public Integer deviceID; - public Integer buildingID; - public Integer pollingInterval; + public Integer deviceID = 0; + public @Nullable Integer buildingID; + public Integer pollingInterval = 360; @Override public String toString() { diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/discovery/MelCloudDiscoveryService.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/discovery/MelCloudDiscoveryService.java index 9134d8482e..76e2b51c3e 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/discovery/MelCloudDiscoveryService.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/discovery/MelCloudDiscoveryService.java @@ -20,9 +20,10 @@ import java.util.Map; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.melcloud.internal.MelCloudBindingConstants; -import org.openhab.binding.melcloud.internal.api.json.Device; +import org.openhab.binding.melcloud.internal.api.dto.Device; import org.openhab.binding.melcloud.internal.exceptions.MelCloudCommException; import org.openhab.binding.melcloud.internal.exceptions.MelCloudLoginException; import org.openhab.binding.melcloud.internal.handler.MelCloudAccountHandler; @@ -43,14 +44,15 @@ import org.slf4j.LoggerFactory; * @author Pauli Anttila - Refactoring * @author Wietse van Buitenen - Check device type, added heatpump device */ +@NonNullByDefault @Component(scope = ServiceScope.PROTOTYPE, service = MelCloudDiscoveryService.class) -public class MelCloudDiscoveryService extends AbstractThingHandlerDiscoveryService<@NonNull MelCloudAccountHandler> { +public class MelCloudDiscoveryService extends AbstractThingHandlerDiscoveryService { private final Logger logger = LoggerFactory.getLogger(MelCloudDiscoveryService.class); private static final String PROPERTY_DEVICE_ID = "deviceID"; private static final int DISCOVER_TIMEOUT_SECONDS = 10; - private ScheduledFuture scanTask; + private @Nullable ScheduledFuture scanTask; /** * Creates a MelCloudDiscoveryService with enabled autostart. @@ -67,7 +69,8 @@ public class MelCloudDiscoveryService extends AbstractThingHandlerDiscoveryServi @Override protected void startScan() { - if (this.scanTask != null) { + ScheduledFuture scanTask = this.scanTask; + if (scanTask != null) { scanTask.cancel(true); } this.scanTask = scheduler.schedule(() -> discoverDevices(), 0, TimeUnit.SECONDS); @@ -77,8 +80,9 @@ public class MelCloudDiscoveryService extends AbstractThingHandlerDiscoveryServi protected void stopScan() { super.stopScan(); - if (this.scanTask != null) { - this.scanTask.cancel(true); + ScheduledFuture scanTask = this.scanTask; + if (scanTask != null) { + scanTask.cancel(true); this.scanTask = null; } } @@ -88,7 +92,7 @@ public class MelCloudDiscoveryService extends AbstractThingHandlerDiscoveryServi try { List deviceList = thingHandler.getDeviceList(); - if (deviceList == null) { + if (deviceList.isEmpty()) { logger.debug("No devices found"); } else { ThingUID bridgeUID = thingHandler.getThing().getUID(); diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudCommException.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudCommException.java index d9a03628a2..eb58b173c5 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudCommException.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudCommException.java @@ -12,11 +12,14 @@ */ package org.openhab.binding.melcloud.internal.exceptions; +import org.eclipse.jdt.annotation.NonNullByDefault; + /** * Exception to encapsulate any issues communicating with MELCloud. * * @author Pauli Anttila - Initial Contribution */ +@NonNullByDefault public class MelCloudCommException extends Exception { private static final long serialVersionUID = 1L; diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudLoginException.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudLoginException.java index 7f8cf58941..4a58af4646 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudLoginException.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/exceptions/MelCloudLoginException.java @@ -12,11 +12,14 @@ */ package org.openhab.binding.melcloud.internal.exceptions; +import org.eclipse.jdt.annotation.NonNullByDefault; + /** * Exception to encapsulate any login issues with MELCloud. * * @author Pauli Anttila - Initial Contribution */ +@NonNullByDefault public class MelCloudLoginException extends Exception { private static final long serialVersionUID = 1L; diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudAccountHandler.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudAccountHandler.java index 1414b2322e..33f3859f65 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudAccountHandler.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudAccountHandler.java @@ -15,15 +15,16 @@ package org.openhab.binding.melcloud.internal.handler; import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.Optional; import java.util.Set; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.binding.melcloud.internal.api.MelCloudConnection; -import org.openhab.binding.melcloud.internal.api.json.Device; -import org.openhab.binding.melcloud.internal.api.json.DeviceStatus; -import org.openhab.binding.melcloud.internal.api.json.HeatpumpDeviceStatus; +import org.openhab.binding.melcloud.internal.api.dto.Device; +import org.openhab.binding.melcloud.internal.api.dto.DeviceStatus; +import org.openhab.binding.melcloud.internal.api.dto.HeatpumpDeviceStatus; import org.openhab.binding.melcloud.internal.config.AccountConfig; import org.openhab.binding.melcloud.internal.discovery.MelCloudDiscoveryService; import org.openhab.binding.melcloud.internal.exceptions.MelCloudCommException; @@ -47,14 +48,15 @@ import org.slf4j.LoggerFactory; * @author Pauli Anttila - Refactoring * @author Wietse van Buitenen - Return all devices, added heatpump device */ +@NonNullByDefault public class MelCloudAccountHandler extends BaseBridgeHandler { private final Logger logger = LoggerFactory.getLogger(MelCloudAccountHandler.class); - private MelCloudConnection connection; - private List devices; - private ScheduledFuture connectionCheckTask; - private AccountConfig config; - private boolean loginCredentialError; + private MelCloudConnection connection = new MelCloudConnection(); + private List devices = Collections.emptyList(); + private @Nullable ScheduledFuture connectionCheckTask; + private AccountConfig config = new AccountConfig(); + private boolean loginCredentialError = false; public MelCloudAccountHandler(Bridge bridge) { super(bridge); @@ -69,8 +71,6 @@ public class MelCloudAccountHandler extends BaseBridgeHandler { public void initialize() { logger.debug("Initializing MELCloud account handler."); config = getConfigAs(AccountConfig.class); - connection = new MelCloudConnection(); - devices = Collections.emptyList(); loginCredentialError = false; startConnectionCheck(); } @@ -79,9 +79,7 @@ public class MelCloudAccountHandler extends BaseBridgeHandler { public void dispose() { logger.debug("Running dispose()"); stopConnectionCheck(); - connection = null; devices = Collections.emptyList(); - config = null; } @Override @@ -102,6 +100,7 @@ public class MelCloudAccountHandler extends BaseBridgeHandler { throw new MelCloudLoginException("Connection to MELCloud can't be opened because of wrong credentials"); } logger.debug("Initializing connection to MELCloud"); + updateStatus(ThingStatus.OFFLINE); try { connection.login(config.username, config.password, config.language); @@ -139,10 +138,10 @@ public class MelCloudAccountHandler extends BaseBridgeHandler { } } - public DeviceStatus fetchDeviceStatus(int deviceId, Optional buildingId) + public DeviceStatus fetchDeviceStatus(int deviceId, @Nullable Integer buildingId) throws MelCloudCommException, MelCloudLoginException { connectIfNotConnected(); - int bid = buildingId.orElse(findBuildingId(deviceId)); + int bid = buildingId != null ? buildingId : findBuildingId(deviceId); try { return connection.fetchDeviceStatus(deviceId, bid); @@ -165,10 +164,10 @@ public class MelCloudAccountHandler extends BaseBridgeHandler { } } - public HeatpumpDeviceStatus fetchHeatpumpDeviceStatus(int deviceId, Optional buildingId) + public HeatpumpDeviceStatus fetchHeatpumpDeviceStatus(int deviceId, @Nullable Integer buildingId) throws MelCloudCommException, MelCloudLoginException { connectIfNotConnected(); - int bid = buildingId.orElse(findBuildingId(deviceId)); + int bid = buildingId != null ? buildingId : findBuildingId(deviceId); try { return connection.fetchHeatpumpDeviceStatus(deviceId, bid); @@ -180,15 +179,13 @@ public class MelCloudAccountHandler extends BaseBridgeHandler { } private int findBuildingId(int deviceId) throws MelCloudCommException { - if (devices != null) { - return devices.stream().filter(d -> d.getDeviceID() == deviceId).findFirst().orElseThrow( - () -> new MelCloudCommException(String.format("Can't find building id for device id %s", deviceId))) - .getBuildingID(); - } - throw new MelCloudCommException(String.format("Can't find building id for device id %s", deviceId)); + return devices.stream().filter(d -> d.getDeviceID() == deviceId).findFirst().orElseThrow( + () -> new MelCloudCommException(String.format("Can't find building id for device id %s", deviceId))) + .getBuildingID(); } private void startConnectionCheck() { + ScheduledFuture connectionCheckTask = this.connectionCheckTask; if (connectionCheckTask == null || connectionCheckTask.isCancelled()) { logger.debug("Start periodic connection check"); Runnable runnable = () -> { @@ -207,17 +204,18 @@ public class MelCloudAccountHandler extends BaseBridgeHandler { } } }; - connectionCheckTask = scheduler.scheduleWithFixedDelay(runnable, 0, 300, TimeUnit.SECONDS); + this.connectionCheckTask = scheduler.scheduleWithFixedDelay(runnable, 0, 300, TimeUnit.SECONDS); } else { logger.debug("Connection check task already running"); } } private void stopConnectionCheck() { + ScheduledFuture connectionCheckTask = this.connectionCheckTask; if (connectionCheckTask != null) { logger.debug("Stop periodic connection check"); connectionCheckTask.cancel(true); - connectionCheckTask = null; + this.connectionCheckTask = null; } } } diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudDeviceHandler.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudDeviceHandler.java index 0448b8c46c..6a43e759f8 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudDeviceHandler.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudDeviceHandler.java @@ -22,13 +22,14 @@ import java.time.ZoneId; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; -import java.util.Optional; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import javax.measure.quantity.Temperature; -import org.openhab.binding.melcloud.internal.api.json.DeviceStatus; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.melcloud.internal.api.dto.DeviceStatus; import org.openhab.binding.melcloud.internal.config.AcDeviceConfig; import org.openhab.binding.melcloud.internal.exceptions.MelCloudCommException; import org.openhab.binding.melcloud.internal.exceptions.MelCloudLoginException; @@ -46,6 +47,7 @@ import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; import org.openhab.core.thing.ThingStatusInfo; import org.openhab.core.thing.binding.BaseThingHandler; +import org.openhab.core.thing.binding.BridgeHandler; import org.openhab.core.thing.binding.ThingHandler; import org.openhab.core.types.Command; import org.openhab.core.types.RefreshType; @@ -59,7 +61,7 @@ import org.slf4j.LoggerFactory; * @author Luca Calcaterra - Initial contribution * @author Pauli Anttila - Refactoring */ - +@NonNullByDefault public class MelCloudDeviceHandler extends BaseThingHandler { private static final int EFFECTIVE_FLAG_POWER = 0x01; @@ -70,10 +72,10 @@ public class MelCloudDeviceHandler extends BaseThingHandler { private static final int EFFECTIVE_FLAG_VANE_HORIZONTAL = 0x100; private final Logger logger = LoggerFactory.getLogger(MelCloudDeviceHandler.class); - private AcDeviceConfig config; - private MelCloudAccountHandler melCloudHandler; - private DeviceStatus deviceStatus; - private ScheduledFuture refreshTask; + private AcDeviceConfig config = new AcDeviceConfig(); + private @Nullable MelCloudAccountHandler melCloudHandler; + private @Nullable DeviceStatus deviceStatus; + private @Nullable ScheduledFuture refreshTask; public MelCloudDeviceHandler(Thing thing) { super(thing); @@ -84,7 +86,7 @@ public class MelCloudDeviceHandler extends BaseThingHandler { logger.debug("Initializing {} handler.", getThing().getThingTypeUID()); Bridge bridge = getBridge(); - if (bridge == null) { + if (bridge == null || !(bridge.getHandler() instanceof BridgeHandler bridgeHandler)) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Bridge Not set"); return; } @@ -92,15 +94,16 @@ public class MelCloudDeviceHandler extends BaseThingHandler { config = getConfigAs(AcDeviceConfig.class); logger.debug("A.C. device config: {}", config); - initializeBridge(bridge.getHandler(), bridge.getStatus()); + initializeBridge(bridgeHandler, bridge.getStatus()); } @Override public void dispose() { logger.debug("Running dispose()"); + ScheduledFuture refreshTask = this.refreshTask; if (refreshTask != null) { refreshTask.cancel(true); - refreshTask = null; + this.refreshTask = null; } melCloudHandler = null; } @@ -109,25 +112,21 @@ public class MelCloudDeviceHandler extends BaseThingHandler { public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) { logger.debug("bridgeStatusChanged {} for thing {}", bridgeStatusInfo, getThing().getUID()); Bridge bridge = getBridge(); - if (bridge != null) { - initializeBridge(bridge.getHandler(), bridgeStatusInfo.getStatus()); + if (bridge != null && bridge.getHandler() instanceof BridgeHandler bridgeHandler) { + initializeBridge(bridgeHandler, bridgeStatusInfo.getStatus()); } } private void initializeBridge(ThingHandler thingHandler, ThingStatus bridgeStatus) { logger.debug("initializeBridge {} for thing {}", bridgeStatus, getThing().getUID()); - if (thingHandler != null && bridgeStatus != null) { - melCloudHandler = (MelCloudAccountHandler) thingHandler; + melCloudHandler = (MelCloudAccountHandler) thingHandler; - if (bridgeStatus == ThingStatus.ONLINE) { - updateStatus(ThingStatus.ONLINE); - startAutomaticRefresh(); - } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); - } + if (bridgeStatus == ThingStatus.ONLINE) { + updateStatus(ThingStatus.ONLINE); + startAutomaticRefresh(); } else { - updateStatus(ThingStatus.OFFLINE); + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); } } @@ -139,12 +138,12 @@ public class MelCloudDeviceHandler extends BaseThingHandler { logger.debug("Refresh command not supported"); return; } - + MelCloudAccountHandler melCloudHandler = this.melCloudHandler; if (melCloudHandler == null) { logger.warn("No connection to MELCloud available, ignoring command"); return; } - + DeviceStatus deviceStatus = this.deviceStatus; if (deviceStatus == null) { logger.info("No initial data available, bridge is probably offline. Ignoring command"); return; @@ -229,18 +228,19 @@ public class MelCloudDeviceHandler extends BaseThingHandler { } private void startAutomaticRefresh() { + ScheduledFuture refreshTask = this.refreshTask; if (refreshTask == null || refreshTask.isCancelled()) { - refreshTask = scheduler.scheduleWithFixedDelay(this::getDeviceDataAndUpdateChannels, 1, + this.refreshTask = scheduler.scheduleWithFixedDelay(this::getDeviceDataAndUpdateChannels, 1, config.pollingInterval, TimeUnit.SECONDS); } } private void getDeviceDataAndUpdateChannels() { - if (melCloudHandler.isConnected()) { + MelCloudAccountHandler melCloudHandler = this.melCloudHandler; + if (melCloudHandler != null && melCloudHandler.isConnected()) { logger.debug("Update device '{}' channels", getThing().getThingTypeUID()); try { - DeviceStatus newDeviceStatus = melCloudHandler.fetchDeviceStatus(config.deviceID, - Optional.ofNullable(config.buildingID)); + DeviceStatus newDeviceStatus = melCloudHandler.fetchDeviceStatus(config.deviceID, config.buildingID); updateChannels(newDeviceStatus); } catch (MelCloudLoginException e) { logger.debug("Login error occurred during device '{}' polling, reason {}. ", @@ -255,7 +255,7 @@ public class MelCloudDeviceHandler extends BaseThingHandler { } private synchronized void updateChannels(DeviceStatus newDeviceStatus) { - deviceStatus = newDeviceStatus; + DeviceStatus deviceStatus = this.deviceStatus = newDeviceStatus; for (Channel channel : getThing().getChannels()) { updateChannels(channel.getUID().getId(), deviceStatus); } diff --git a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudHeatpumpDeviceHandler.java b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudHeatpumpDeviceHandler.java index 276679a8a3..c34cfb2536 100644 --- a/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudHeatpumpDeviceHandler.java +++ b/bundles/org.openhab.binding.melcloud/src/main/java/org/openhab/binding/melcloud/internal/handler/MelCloudHeatpumpDeviceHandler.java @@ -22,13 +22,14 @@ import java.time.ZoneId; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; -import java.util.Optional; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import javax.measure.quantity.Temperature; -import org.openhab.binding.melcloud.internal.api.json.HeatpumpDeviceStatus; +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.melcloud.internal.api.dto.HeatpumpDeviceStatus; import org.openhab.binding.melcloud.internal.config.HeatpumpDeviceConfig; import org.openhab.binding.melcloud.internal.exceptions.MelCloudCommException; import org.openhab.binding.melcloud.internal.exceptions.MelCloudLoginException; @@ -45,6 +46,7 @@ import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; import org.openhab.core.thing.ThingStatusInfo; import org.openhab.core.thing.binding.BaseThingHandler; +import org.openhab.core.thing.binding.BridgeHandler; import org.openhab.core.thing.binding.ThingHandler; import org.openhab.core.types.Command; import org.openhab.core.types.RefreshType; @@ -57,16 +59,17 @@ import org.slf4j.LoggerFactory; * * @author Wietse van Buitenen - Initial contribution */ +@NonNullByDefault public class MelCloudHeatpumpDeviceHandler extends BaseThingHandler { private static final long EFFECTIVE_FLAG_POWER = 1L; private static final long EFFECTIVE_FLAG_TEMPERATURE_ZONE1 = 8589934720L; private static final long EFFECTIVE_FLAG_HOTWATER = 65536L; private final Logger logger = LoggerFactory.getLogger(MelCloudHeatpumpDeviceHandler.class); - private HeatpumpDeviceConfig config; - private MelCloudAccountHandler melCloudHandler; - private HeatpumpDeviceStatus heatpumpDeviceStatus; - private ScheduledFuture refreshTask; + private HeatpumpDeviceConfig config = new HeatpumpDeviceConfig(); + private @Nullable MelCloudAccountHandler melCloudHandler; + private @Nullable HeatpumpDeviceStatus heatpumpDeviceStatus; + private @Nullable ScheduledFuture refreshTask; public MelCloudHeatpumpDeviceHandler(Thing thing) { super(thing); @@ -77,7 +80,7 @@ public class MelCloudHeatpumpDeviceHandler extends BaseThingHandler { logger.debug("Initializing {} handler.", getThing().getThingTypeUID()); Bridge bridge = getBridge(); - if (bridge == null) { + if (bridge == null || !(bridge.getHandler() instanceof BridgeHandler bridgeHandler)) { updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Bridge Not set"); return; } @@ -85,15 +88,16 @@ public class MelCloudHeatpumpDeviceHandler extends BaseThingHandler { config = getConfigAs(HeatpumpDeviceConfig.class); logger.debug("Heatpump device config: {}", config); - initializeBridge(bridge.getHandler(), bridge.getStatus()); + initializeBridge(bridgeHandler, bridge.getStatus()); } @Override public void dispose() { logger.debug("Running dispose()"); + ScheduledFuture refreshTask = this.refreshTask; if (refreshTask != null) { refreshTask.cancel(true); - refreshTask = null; + this.refreshTask = null; } melCloudHandler = null; } @@ -102,25 +106,21 @@ public class MelCloudHeatpumpDeviceHandler extends BaseThingHandler { public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) { logger.debug("bridgeStatusChanged {} for thing {}", bridgeStatusInfo, getThing().getUID()); Bridge bridge = getBridge(); - if (bridge != null) { - initializeBridge(bridge.getHandler(), bridgeStatusInfo.getStatus()); + if (bridge != null && bridge.getHandler() instanceof BridgeHandler bridgeHandler) { + initializeBridge(bridgeHandler, bridgeStatusInfo.getStatus()); } } private void initializeBridge(ThingHandler thingHandler, ThingStatus bridgeStatus) { logger.debug("initializeBridge {} for thing {}", bridgeStatus, getThing().getUID()); - if (thingHandler != null && bridgeStatus != null) { - melCloudHandler = (MelCloudAccountHandler) thingHandler; + melCloudHandler = (MelCloudAccountHandler) thingHandler; - if (bridgeStatus == ThingStatus.ONLINE) { - updateStatus(ThingStatus.ONLINE); - startAutomaticRefresh(); - } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); - } + if (bridgeStatus == ThingStatus.ONLINE) { + updateStatus(ThingStatus.ONLINE); + startAutomaticRefresh(); } else { - updateStatus(ThingStatus.OFFLINE); + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); } } @@ -133,11 +133,12 @@ public class MelCloudHeatpumpDeviceHandler extends BaseThingHandler { return; } + MelCloudAccountHandler melCloudHandler = this.melCloudHandler; if (melCloudHandler == null) { logger.warn("No connection to MELCloud available, ignoring command"); return; } - + HeatpumpDeviceStatus heatpumpDeviceStatus = this.heatpumpDeviceStatus; if (heatpumpDeviceStatus == null) { logger.info("No initial data available, bridge is probably offline. Ignoring command"); return; @@ -207,18 +208,20 @@ public class MelCloudHeatpumpDeviceHandler extends BaseThingHandler { } private void startAutomaticRefresh() { + ScheduledFuture refreshTask = this.refreshTask; if (refreshTask == null || refreshTask.isCancelled()) { - refreshTask = scheduler.scheduleWithFixedDelay(this::getDeviceDataAndUpdateChannels, 1, + this.refreshTask = scheduler.scheduleWithFixedDelay(this::getDeviceDataAndUpdateChannels, 1, config.pollingInterval, TimeUnit.SECONDS); } } private void getDeviceDataAndUpdateChannels() { - if (melCloudHandler.isConnected()) { + MelCloudAccountHandler melCloudHandler = this.melCloudHandler; + if (melCloudHandler != null && melCloudHandler.isConnected()) { logger.debug("Update device '{}' channels", getThing().getThingTypeUID()); try { HeatpumpDeviceStatus newHeatpumpDeviceStatus = melCloudHandler - .fetchHeatpumpDeviceStatus(config.deviceID, Optional.ofNullable(config.buildingID)); + .fetchHeatpumpDeviceStatus(config.deviceID, config.buildingID); updateChannels(newHeatpumpDeviceStatus); } catch (MelCloudLoginException e) { logger.debug("Login error occurred during device '{}' polling, reason {}. ", @@ -233,7 +236,7 @@ public class MelCloudHeatpumpDeviceHandler extends BaseThingHandler { } private synchronized void updateChannels(HeatpumpDeviceStatus newHeatpumpDeviceStatus) { - heatpumpDeviceStatus = newHeatpumpDeviceStatus; + HeatpumpDeviceStatus heatpumpDeviceStatus = this.heatpumpDeviceStatus = newHeatpumpDeviceStatus; for (Channel channel : getThing().getChannels()) { updateChannels(channel.getUID().getId(), heatpumpDeviceStatus); }