コード例 #1
0
ファイル: room.py プロジェクト: aashir789/pytomation
 def test_room_occupied(self):
     m = Motion()
     r = Room(devices=m)
     r.vacate()
     self.assertEqual(r.state, State.VACANT)
     m.motion()
     self.assertEqual(r.state, State.OCCUPIED)
コード例 #2
0
ファイル: room.py プロジェクト: ver007/pytomation
 def test_room_occupied(self):
     m = Motion()
     r = Room(devices=m)
     r.vacate()
     self.assertEqual(r.state, State.VACANT)
     m.motion()
     self.assertEqual(r.state, State.OCCUPIED)
コード例 #3
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)
        
        
コード例 #4
0
ファイル: room.py プロジェクト: aashir789/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)
コード例 #5
0
ファイル: graburns.py プロジェクト: izzoh/pytomation
s_all_indoor_off = StateDevice()

#photocell
ph_standard = Location('35.2269', '-80.8433', 
                       tz='US/Eastern', 
                       mode=Location.MODE.STANDARD, 
                       is_dst=True,
                       name='Standard Photocell')
ph_civil = Location('35.2269', '-80.8433', 
                    tz='US/Eastern', 
                    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)
コード例 #6
0
ファイル: dopeyrealm.py プロジェクト: mrwhatever/pytomation
l_hallway = Light(address='2AB8F8', devices=(insteon), name="Hallway Light")

l_hallway_switch = Light(address='2AEB30',
                         devices=(insteon),
                         name="Hallway Light Switch")

l_master_bathroom = Light(address='2AB2AF',
                          devices=(insteon),
                          name="Master Bathroom Light")

l_master_faucet = Light(address='2A9CD9',
                        devices=(insteon),
                        name="Master Faucet Light")

#Rooms (Device Grouping shouldn't add default command mappings, but does. Ignoring devices works-around. Fix under construction)
r_backporch = Room(name='Back Porch', devices=l_backporch)
r_frontporch = Room(name='Front Porch', devices=l_frontporch)
r_kitchen = Room(name='Kitchen',
                 ignore={
                     Attribute.COMMAND: Command.LEVEL,
                     Attribute.SOURCE: hall_thermostat
                 },
                 source=l_kitchen_back,
                 devices=(l_kitchen_recessed, l_kitchen_back, l_kitchen_faucet,
                          hall_thermostat))
r_bathroom = Room(name='Bathroom',
                  ignore={
                      Attribute.COMMAND: Command.LEVEL,
                      Attribute.SOURCE: hall_thermostat
                  },
                  source=l_bathroom,
コード例 #7
0
#photocell
ph_standard = Location('35.2269',
                       '-80.8433',
                       tz='US/Eastern',
                       mode=Location.MODE.STANDARD,
                       is_dst=True,
                       name='Standard Photocell')
ph_civil = Location('35.2269',
                    '-80.8433',
                    tz='US/Eastern',
                    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))
コード例 #8
0
ファイル: room.py プロジェクト: ver007/pytomation
 def test_init(self):
     r = Room()
     self.assertIsNotNone(r)