From 7ec82a8396e7c10f037a43674ac145a358e31ceb Mon Sep 17 00:00:00 2001 From: Matt Jones Date: Sun, 6 Jul 2025 12:55:20 -0500 Subject: [PATCH] feat: add support for roller curtains --- pom.xml | 2 +- .../bigboxer23/switch_bot/IDeviceTypes.java | 2 ++ .../bigboxer23/switch_bot/data/Device.java | 20 +++++++++++++++++-- .../SwitchBotApiIntegrationTest.java | 5 +++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 7627000..079958f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.bigboxer23 switchbotapi-java - 1.2.3 + 1.2.4 switchbotapi-java https://github.com/bigboxer23/switchbotapi-java diff --git a/src/main/java/com/bigboxer23/switch_bot/IDeviceTypes.java b/src/main/java/com/bigboxer23/switch_bot/IDeviceTypes.java index 95694cc..b7b0c9f 100644 --- a/src/main/java/com/bigboxer23/switch_bot/IDeviceTypes.java +++ b/src/main/java/com/bigboxer23/switch_bot/IDeviceTypes.java @@ -13,4 +13,6 @@ public interface IDeviceTypes { String WATER_DETECTOR = "Water Detector"; String METER_PRO_CO2 = "MeterPro(CO2)"; + + String ROLLER_SHADE = "Roller Shade"; } diff --git a/src/main/java/com/bigboxer23/switch_bot/data/Device.java b/src/main/java/com/bigboxer23/switch_bot/data/Device.java index adc40fc..e49363f 100644 --- a/src/main/java/com/bigboxer23/switch_bot/data/Device.java +++ b/src/main/java/com/bigboxer23/switch_bot/data/Device.java @@ -3,6 +3,8 @@ import com.squareup.moshi.Json; import lombok.Data; +import java.util.List; + /** */ @Data public class Device { @@ -24,12 +26,20 @@ public class Device { private boolean group; + private boolean master; + + private String groupName; + + private List groupingDevicesIds; + + private List curtainDevicesIds; + + private String openDirection; + private boolean moving; private int slidePosition; - private boolean master; - private String power; private float voltage; @@ -46,6 +56,12 @@ public class Device { @Json(name = "CO2") private int co2; + private boolean calibrate; + + private String hubDeviceId; + + private boolean enableCloudService; + public boolean isDry() { return waterDetectorStatus == 0; } diff --git a/src/test/java/com/bigboxer23/switch_bot/integration/SwitchBotApiIntegrationTest.java b/src/test/java/com/bigboxer23/switch_bot/integration/SwitchBotApiIntegrationTest.java index 439faa9..84e7570 100644 --- a/src/test/java/com/bigboxer23/switch_bot/integration/SwitchBotApiIntegrationTest.java +++ b/src/test/java/com/bigboxer23/switch_bot/integration/SwitchBotApiIntegrationTest.java @@ -67,6 +67,11 @@ public void testDeviceStatus() throws IOException { } case IDeviceTypes.WATER_DETECTOR -> assertTrue(status.isWet() || status.isDry()); case IDeviceTypes.METER_PRO_CO2 -> assertTrue(status.getCo2() > 0); + case IDeviceTypes.ROLLER_SHADE -> { + assertTrue(status.isCalibrate()); + assertNotNull(device.getGroupingDevicesIds()); + assertNotNull(device.getGroupName()); + } } } }