diff --git a/pom.xml b/pom.xml
index 22c0995..ac43b7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.bigboxer23
econetapi-java
- 1.0.4
+ 1.0.5
econet-java
https://github.com/bigboxer23/econetapi-java
diff --git a/src/main/java/com/bigboxer23/eco_net/EcoNetAPI.java b/src/main/java/com/bigboxer23/eco_net/EcoNetAPI.java
index a7ffe32..fade4a4 100644
--- a/src/main/java/com/bigboxer23/eco_net/EcoNetAPI.java
+++ b/src/main/java/com/bigboxer23/eco_net/EcoNetAPI.java
@@ -24,7 +24,7 @@ public class EcoNetAPI implements IEcoNetConstants {
private static MqttAsyncClient mqttClient;
- private List subscribers = new ArrayList<>();
+ private final List subscribers = new ArrayList<>();
private final String userToken;
private final String accountId;
@@ -74,10 +74,10 @@ public Optional fetchUserData() {
baseUrl + "/code/" + CLEAR_BLADE_SYSTEM_KEY + "/getUserDataForApp",
OkHttpRequestBodyUtils.createBodyFromString(new JsonMapBuilder()
.put("location_only", false)
- .put("type", "com.econet.econetconsumerandroid")
- .put("version", "6.0.0-375-01b4870e")
+ .put("type", TYPE)
+ .put("version", VERSION)
.toJson()),
- getHeaders(Collections.singletonMap("ClearBlade-UserToken", userToken)))) {
+ getHeaders(Collections.singletonMap(CLEAR_BLADE_USER_TOKEN, userToken)))) {
Optional body = OkHttpUtil.getBody(response, UserData.class);
if (body.isPresent() && !body.get().isSuccess()) {
logger.error("fetchUserData: ");
@@ -96,7 +96,7 @@ public Optional fetchEnergyUsage(
baseUrl + "/code/" + CLEAR_BLADE_SYSTEM_KEY + "/dynamicAction",
OkHttpRequestBodyUtils.createBodyFromJsonObject(
new FetchUsageCommand(deviceId, serialNumber, day, month, year), FetchUsageCommand.class),
- getHeaders(Collections.singletonMap("ClearBlade-UserToken", userToken)))) {
+ getHeaders(Collections.singletonMap(CLEAR_BLADE_USER_TOKEN, userToken)))) {
Optional body = OkHttpUtil.getBody(response, EnergyResults.class);
if (body.isPresent() && !body.get().isSuccess()) {
logger.error("fetchEnergyUsage: " + body.get().getLogs());
diff --git a/src/main/java/com/bigboxer23/eco_net/IEcoNetConstants.java b/src/main/java/com/bigboxer23/eco_net/IEcoNetConstants.java
index 730abac..6be56c7 100644
--- a/src/main/java/com/bigboxer23/eco_net/IEcoNetConstants.java
+++ b/src/main/java/com/bigboxer23/eco_net/IEcoNetConstants.java
@@ -6,6 +6,9 @@ public interface IEcoNetConstants {
String baseUrl = "https://rheem.clearblade.com/api/v/1/";
String CLEAR_BLADE_SYSTEM_KEY = "e2e699cb0bb0bbb88fc8858cb5a401";
String CLEAR_BLADE_SYSTEM_SECRET = "E2E699CB0BE6C6FADDB1B0BC9A20";
+ String TYPE = "com.econet.econetconsumerandroid";
+ String VERSION = "6.0.0-375-01b4870e";
+ String CLEAR_BLADE_USER_TOKEN = "ClearBlade-UserToken";
int TIMEOUT = 60000;
int QOS = 2;
}
diff --git a/src/main/java/com/bigboxer23/eco_net/data/Equipment.java b/src/main/java/com/bigboxer23/eco_net/data/Equipment.java
index c5a207f..a1b8e1c 100644
--- a/src/main/java/com/bigboxer23/eco_net/data/Equipment.java
+++ b/src/main/java/com/bigboxer23/eco_net/data/Equipment.java
@@ -26,4 +26,14 @@ public class Equipment {
@Json(name = "@MODE")
private Modes modes;
+
+ @Json(name = "@RUNNING")
+ private String compressorStatus;
+
+ @Json(name = "@HOTWATER")
+ private String tankStatusUrl;
+
+ public float getTankStatus() {
+ return TankStatus.getTankStatus(tankStatusUrl);
+ }
}
diff --git a/src/main/java/com/bigboxer23/eco_net/data/TankStatus.java b/src/main/java/com/bigboxer23/eco_net/data/TankStatus.java
new file mode 100644
index 0000000..25ee955
--- /dev/null
+++ b/src/main/java/com/bigboxer23/eco_net/data/TankStatus.java
@@ -0,0 +1,21 @@
+package com.bigboxer23.eco_net.data;
+
+import org.apache.commons.lang3.StringUtils;
+
+/** */
+public class TankStatus {
+ private static final String EMPTY = "ic_tank_zero_percent_v2.png.png";
+ private static final String ONE_THIRD = "ic_tank_ten_percent_v2.png";
+ private static final String TWO_THIRD = "ic_tank_fourty_percent_v2.png";
+ private static final String FULL = "ic_tank_hundread_percent_v2.png";
+
+ public static float getTankStatus(String tankStatusUrl) {
+ return switch (StringUtils.defaultIfEmpty(tankStatusUrl, "")) {
+ case EMPTY -> 0.0f;
+ case ONE_THIRD -> .33f;
+ case TWO_THIRD -> .66f;
+ case FULL -> 1f;
+ default -> -1f;
+ };
+ }
+}
diff --git a/src/test/java/com/bigboxer23/eco_net/EcoNetApiTest.java b/src/test/java/com/bigboxer23/eco_net/EcoNetApiTest.java
index 7590f99..a9a7089 100644
--- a/src/test/java/com/bigboxer23/eco_net/EcoNetApiTest.java
+++ b/src/test/java/com/bigboxer23/eco_net/EcoNetApiTest.java
@@ -63,6 +63,21 @@ public void getUserData() {
.get(0)
.getSetpoint()
.getValue());
+ assertTrue(result.get()
+ .getResults()
+ .getLocations()
+ .get(0)
+ .getEquipments()
+ .get(0)
+ .getTankStatus()
+ >= 0);
+ assertNotNull(result.get()
+ .getResults()
+ .getLocations()
+ .get(0)
+ .getEquipments()
+ .get(0)
+ .getCompressorStatus());
}
@Test