Ejemplo n.º 1
0
        public void Check_WaterLeakSensor_Raised_NoLeak()
        {
            // Arrange
            var cmd = Helpers
                      .CreateCommand("heartbeat", "sensor_wleak.aq1", "158d0001d561e2", 18101,
                                     new Dictionary <string, object>
            {
                { "voltage", "3005" }
            });

            // Act
            WaterLeakSensor device = _deviceFactory.GetDeviceByCommand <WaterLeakSensor>(cmd);

            bool noleakRaised = false;

            device.OnNoLeak += (_, __) => noleakRaised = true;;

            cmd = Helpers
                  .CreateCommand("report", "sensor_wleak.aq1", "158d0001d561e2", 18101,
                                 new Dictionary <string, object>
            {
                { "status", "no_leak" }
            });

            device.ParseData(ResponseCommand.FromString(cmd).Data);

            // Assert
            Assert.True(noleakRaised);
        }
Ejemplo n.º 2
0
        public void Check_WaterLeakSensor_Heartbeat_Data()
        {
            // Arrange
            var cmd = Helpers
                      .CreateCommand("heartbeat", "sensor_wleak.aq1", "158d0001d561e2", 18101,
                                     new Dictionary <string, object>
            {
                { "voltage", "3005" }
            });

            // Act
            WaterLeakSensor device = _deviceFactory.GetDeviceByCommand <WaterLeakSensor>(cmd);

            // Assert
            Assert.Equal("sensor_wleak.aq1", device.Type);
            Assert.Equal("158d0001d561e2", device.Sid);
            Assert.Equal(3.005f, device.Voltage);
        }
Ejemplo n.º 3
0
        public void Check_WaterLeakSensor_Report_Data()
        {
            // Arrange
            var cmd = Helpers
                      .CreateCommand("report", "sensor_wleak.aq1", "158d0001d561e2", 18101,
                                     new Dictionary <string, object>
            {
                { "status", "no_leak" }
            });

            // Act
            WaterLeakSensor device = _deviceFactory.GetDeviceByCommand <WaterLeakSensor>(cmd);

            // Assert
            Assert.Equal("sensor_wleak.aq1", device.Type);
            Assert.Equal("158d0001d561e2", device.Sid);
            Assert.Equal("no_leak", device.Status);
        }
Ejemplo n.º 4
0
        public static void Initialize(MiLightGateway miLightGateway)
        {
            //Sonoff Switches
            ChristmasLights = new SonoffSwitch("192.168.10.84");
            KitchenLights   = new SonoffSwitch("192.168.10.81");
            GlobusLight     = new SonoffSwitch("192.168.10.81"); //TODO IP
            BedLightBalls   = new SonoffSwitch("192.168.10.81"); //TODO IP

            //Yee Light Devices
            LightHallway = new YeelightDevice("192.168.10.77", "0x000000000361df8b", false, 0, "mono");
            StripeA      = new YeelightDevice("192.168.10.75", "0x000000000361afc3", false, 0, "stripe");
            StripeB      = new YeelightDevice("192.168.10.74", "0x0000000004555e6d", false, 0, "stripe");

            //Mi Light Devices
            BulbA = new MiBulb(miLightGateway, 1);
            BulbB = new MiBulb(miLightGateway, 2);
            BulbC = new MiBulb(miLightGateway, 3);

            //Mi Home Devices
            DoorBathroom = new DoorWindowSensor("158d0001e037e5")
            {
                CustomName = "Badezimmertür"
            };
            ApartmentDoor = new DoorWindowSensor("158d0001a5db48")
            {
                CustomName = "Wohnungstür"
            };
            SwitchA = new SimpleSwitch("158d00019dbac7")
            {
                CustomName = "Switch A"
            };
            SwitchB = new SimpleSwitch("158d00016da2ed")
            {
                CustomName = "Switch B"
            };
            MotionBathroom = new MotionSensor("158d0001d87940")
            {
                CustomName = "Motion Bathroom"
            };
            MotionHall = new MotionSensor("158d0001d47c2f")
            {
                CustomName = "Motion Hall"
            };
            MotionLivingRoom = new MotionSensor("158d00014dc328")
            {
                CustomName = "Motion Living Room"
            };
            SwitchC = new SensorSwitch("158d0001b86fed")
            {
                CustomName = "Switch C"
            };
            SwitchD = new SensorSwitch("158d0001b86f59")
            {
                CustomName = "SwitchD"
            };
            WaterLeakBathroom = new WaterLeakSensor("158d0001bb89e9")
            {
                CustomName = "Water Leak"
            };
            TempSensorLivingRoom = new TempSensor("158d0001b7edbb")
            {
                CustomName = "Temperatur Wohnzimmer"
            };
            SwitchE = new DoubleKeySwitch("158d0001718576")
            {
                CustomName = "Switch Wandregal"
            };
        }