diff --git a/src/main/java/device/Hue.java b/src/main/java/device/Hue.java index 1ee4c98..7257150 100644 --- a/src/main/java/device/Hue.java +++ b/src/main/java/device/Hue.java @@ -37,6 +37,9 @@ public class Hue { } } + public int getCurrentLuminiscence() { + return 0; + } public void turnOff() { for (String light : allLights.keySet()) { String callURL = lightsURL + light + "/state"; diff --git a/src/main/java/device/Sensor.java b/src/main/java/device/Sensor.java index ece2924..0aa2c8b 100644 --- a/src/main/java/device/Sensor.java +++ b/src/main/java/device/Sensor.java @@ -12,31 +12,62 @@ public class Sensor { Logger logger = LoggerFactory.getLogger(Sensor.class); // sample RaZberry IP address - String ipAddress = "http://172.30.1.137:8083"; + public String ipAddress = "172.30.1.137"; // sample username and password - String username = "admin"; - String password = "raz4reti2"; + public String username = "admin"; + public String password = "raz4reti2"; - IZWayApi zwayApi; + public IZWayApi zwayApi; + private DeviceList allZWaveDevices; + private DeviceList devices; + private Integer nodeId; public Sensor() { - // create an instance of the Z-Way library; all the params are mandatory (we are not going to use the remote service/id) - zwayApi = new ZWayApiHttp(ipAddress, 8083, "http", username, password, 0, false, new ZWaySimpleCallback()); + this(null); } - // get all the Z-Wave devices - DeviceList allDevices = zwayApi.getDevices(); + public Sensor (Integer nodeId) { + this.nodeId = nodeId; - public boolean IsLowLuminescence(int Luminescence) { - for (Device dev : allDevices.getAllDevices()) { - if (dev.getDeviceType().equalsIgnoreCase("SensorMultilevel")) - if (dev.getProbeType().equalsIgnoreCase("luminescence")) + // create an instance of the Z-Way library; all the params are mandatory (we are not going to use the remote service/id) + zwayApi = new ZWayApiHttp(ipAddress, 8083, "http", username, password, 0, false, new ZWaySimpleCallback()); + + // get all the Z-Wave devices + allZWaveDevices = zwayApi.getDevices(); + + if(nodeId != null) + useNode(nodeId); + else + devices = allZWaveDevices; + } + + public void useNode(int nodeId) { + devices = new DeviceList(); + for (Device devi : allZWaveDevices.getAllDevices()) + if(devi.getNodeId() == nodeId) + devices.addDevice(devi); + } + + public int luminiscenceLevel() { + for (Device device : devices.getAllDevices()) + if (device.getMetrics().getProbeTitle().equalsIgnoreCase("luminiscence")) + return Integer.parseInt(device.getMetrics().getLevel()); + return -99; + } + + synchronized public void update(int timeout) throws InterruptedException { + //setInitialValues(); + for (Device device : devices.getAllDevices()) + device.update(); + wait(timeout); + } + /*public boolean IsLowLuminescence(int Luminescence) { + if (dev.getProbeType().equalsIgnoreCase("Luminescence")) if (Integer.parseInt(dev.getMetrics().getLevel()) < Luminescence) return true; else return false; - } - return false; - } + return false; + }*/ } diff --git a/src/test/java/TestLights.java b/src/test/java/TestLights.java index 3878584..1b8fcf3 100644 --- a/src/test/java/TestLights.java +++ b/src/test/java/TestLights.java @@ -26,16 +26,17 @@ public class TestLights { lights.turnOn(); for(int i=256; i>=0; i--) { lights.setBrightness(i); - this.wait(50); + this.wait(25); } for(int i=0; i<256; i++) { lights.setBrightness(i); - this.wait(50); + this.wait(25); } + lights.setBrightness(150); lights.colorLoop(); - this.wait(10000); // 10 sec + this.wait(20000); // 10 sec lights.turnOff(); } diff --git a/src/test/java/TestSensor.java b/src/test/java/TestSensor.java index 16fd220..720564c 100644 --- a/src/test/java/TestSensor.java +++ b/src/test/java/TestSensor.java @@ -2,22 +2,43 @@ import device.Hue; import device.Sensor; import org.junit.Test; -import static org.junit.Assert.assertTrue; +import java.util.HashSet; +import java.util.Set; -public class TestSensor { - Sensor sensor = new Sensor(); - Hue hue = new Hue(); + public class TestSensor { + Sensor sensor = new Sensor(2); + Hue lights; @Test - public void firstTestSensor() { - assertTrue(sensor.IsLowLuminescence(50)); + synchronized public void firstTestSensor() throws InterruptedException { + sensor.update(2); + System.out.println(sensor.luminiscenceLevel()); } @Test - public void secondTestSensor() { - if(sensor.IsLowLuminescence(50)) { - hue.turnOn(); - hue.setBrightness(200); + synchronized public void secondTestSensor() throws InterruptedException { + int i=0; + lights = new Hue(); + Set toRemove = new HashSet<>(); + + for(String str: lights.getNameLights()) + if(!str.equals("4")) + toRemove.add(str); + lights.removeLights(toRemove); + lights.turnOn(); + + while(i<999999) { + if (sensor.luminiscenceLevel() < 200) { + lights.getCurrentLuminiscence(); + lights.setBrightness(200); + } + + if (sensor.luminiscenceLevel() > 600) { + lights.setBrightness(0); + } + System.out.println(i+"-"+sensor.luminiscenceLevel()); + sensor.update(100); + i++; } } }