예제 #1
0
    def test_room_to_room_vacate(self):
        m1 = Motion(name="m1")
        m2 = Motion(name="m2")
        m3 = Motion(name="m3")
        r1 = Room(name="r1", devices=m1)
        r2 = Room(name="r2", devices=(m2, r1))
        r3 = Room(name="r3", devices=(m3, r2))
        r1.add_device(r2)
        r2.add_device(r3)

        m1.motion()
        self.assertEqual(r1.state, State.OCCUPIED)
        self.assertEqual(r2.state, State.VACANT)
        self.assertEqual(r3.state, State.UNKNOWN)
        m2.motion()
        self.assertEqual(r1.state, State.VACANT)
        self.assertEqual(r2.state, State.OCCUPIED)
        self.assertEqual(r3.state, State.VACANT)
        m3.motion()
        self.assertEqual(r1.state, State.VACANT)
        self.assertEqual(r2.state, State.VACANT)
        self.assertEqual(r3.state, State.OCCUPIED)
        m1.motion()
        self.assertEqual(r1.state, State.OCCUPIED)
        self.assertEqual(r2.state, State.VACANT)
        self.assertEqual(r3.state, State.OCCUPIED)
        m2.motion()
        self.assertEqual(r1.state, State.VACANT)
        self.assertEqual(r2.state, State.OCCUPIED)
        self.assertEqual(r3.state, State.VACANT)
예제 #2
0
파일: room.py 프로젝트: ver007/pytomation
    def test_room_to_room_vacate(self):
        m1 = Motion(name='m1')
        m2 = Motion(name='m2')
        m3 = Motion(name='m3')
        r1 = Room(name='r1', devices=m1)
        r2 = Room(name='r2', devices=(m2, r1))
        r3 = Room(name='r3', devices=(m3, r2))
        r1.add_device(r2)
        r2.add_device(r3)

        m1.motion()
        self.assertEqual(r1.state, State.OCCUPIED)
        self.assertEqual(r2.state, State.VACANT)
        self.assertEqual(r3.state, State.UNKNOWN)
        m2.motion()
        self.assertEqual(r1.state, State.VACANT)
        self.assertEqual(r2.state, State.OCCUPIED)
        self.assertEqual(r3.state, State.VACANT)
        m3.motion()
        self.assertEqual(r1.state, State.VACANT)
        self.assertEqual(r2.state, State.VACANT)
        self.assertEqual(r3.state, State.OCCUPIED)
        m1.motion()
        self.assertEqual(r1.state, State.OCCUPIED)
        self.assertEqual(r2.state, State.VACANT)
        self.assertEqual(r3.state, State.OCCUPIED)
        m2.motion()
        self.assertEqual(r1.state, State.VACANT)
        self.assertEqual(r2.state, State.OCCUPIED)
        self.assertEqual(r3.state, State.VACANT)
        
        
예제 #3
0
                    mode=Location.MODE.CIVIL, 
                    is_dst=True,
                    name='Civil Photocell')

# Rooms
r_foyer = Room(name='Foyer', devices=(m_foyer))
r_den = Room(name='Den', devices=(m_den, r_foyer))
r_family = Room(name='Family', 
		devices=(m_family, r_foyer),
		trigger={ Attribute.COMMAND: Command.OCCUPY,
			  Attribute.MAPPED: Command.VACATE,
			  Attribute.SECS: 2*60*60,
			},
		)
r_kitchen = Room(name='Kitchen', devices=(m_kitchen, r_foyer))
r_foyer.add_device(r_den)
r_foyer.add_device(r_family)
r_foyer.add_device(r_kitchen)
r_breakfast = Room(name='Breakfast', devices=(m_breakfast, r_kitchen))
r_utility = Room(name='Utility', devices=(m_utility, r_kitchen, d_laundry))
r_kitchen.add_device(r_breakfast)
r_kitchen.add_device(r_utility)
r_garage = Room(name='Garage', devices=(m_garage, r_utility, d_laundry, d_garage, d_garage_overhead))
r_utility.add_device(r_garage)

#lights
# Turn on the foyer light at night when either the door is opened or family PIR is tripped.
l_foyer = Light(
                address="24.a9.14",
                devices=(insteon, d_foyer,
                         m_foyer,
예제 #4
0
                    name='Civil Photocell')

# Rooms
r_foyer = Room(name='Foyer', devices=(m_foyer))
r_den = Room(name='Den', devices=(m_den, r_foyer))
r_family = Room(
    name='Family',
    devices=(m_family, r_foyer),
    trigger={
        Attribute.COMMAND: Command.OCCUPY,
        Attribute.MAPPED: Command.VACATE,
        Attribute.SECS: 2 * 60 * 60,
    },
)
r_kitchen = Room(name='Kitchen', devices=(m_kitchen, r_foyer))
r_foyer.add_device(r_den)
r_foyer.add_device(r_family)
r_foyer.add_device(r_kitchen)
r_breakfast = Room(name='Breakfast', devices=(m_breakfast, r_kitchen))
r_utility = Room(name='Utility', devices=(m_utility, r_kitchen, d_laundry))
r_kitchen.add_device(r_breakfast)
r_kitchen.add_device(r_utility)
r_garage = Room(name='Garage',
                devices=(m_garage, r_utility, d_laundry, d_garage,
                         d_garage_overhead))
r_utility.add_device(r_garage)

#lights
# Turn on the foyer light at night when either the door is opened or family PIR is tripped.
l_foyer = Light(
    address="24.a9.14",