-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlights.py
76 lines (60 loc) · 2.92 KB
/
lights.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
from bind import *
from settable_controller import SettableController
from daylight_controller import DaylightController
from aggregator import Aggregator
from timer_controller import TimerController
from shet.path import join
from twisted.internet import reactor
TimerController("/lights/override", 10*60, None).install()
DaylightController("/lights/daylight", 53.46171, -2.217164).install()
def setup_light(name, time):
Aggregator(name, ["/lights/override", "override", "/lights/daylight", "timer"]).install()
TimerController(join(name, "timer"), time, False).install()
TimerController(join(name, "override"), 10*60, None).install()
setup_light("/hall/lights", 120)
setup_light("/landing/lights", 120)
setup_light("/attic/lights", 120)
setup_light("/bog/lights", 120)
setup_light("/lounge/lights_new/lounge", 600)
setup_light("/lounge/lights_new/kitchen", 600)
EventToProperty("/hall/lights/state_change", "/karl/arduino/light_hall").install()
EventToProperty("/landing/lights/state_change", "/karl/arduino/light_landing").install()
EventToProperty("/landing/lights/state_change", "/tom/servo").install()
EventToProperty("/bog/lights/state_change", "/jonathan/arduino/light_bog").install()
EventToProperty("/attic/lights/state_change", "/jonathan/arduino/light_attic").install()
EventToProperty("/lounge/lights_new/lounge/state_change", "/lounge/lights/lounge").install()
EventToProperty("/lounge/lights_new/kitchen/state_change", "/lounge/lights/kitchen").install()
EventToAction("/tom/pir_landing", "/attic/lights/timer/on").install()
EventToAction("/jonathan/arduino/pir_bog", "/bog/lights/timer/on").install()
EventToAction("/karl/arduino/pir_hall", "/hall/lights/timer/on").install()
EventToAction("/jonathan/arduino/pir_stairs", "/landing/lights/timer/on").install()
EventToAction("/jonathan/arduino/pir_stairs", "/attic/lights/timer/on").install()
EventToAction("/tom/pir_middle", "/landing/lights/timer/on").install()
EventToAction("/lounge/arduino/pir", "/lounge/lights_new/lounge/timer/on").install()
EventToAction("/lounge/arduino/pir", "/lounge/lights_new/kitchen/timer/on").install()
# pir_events = dict(hall="/karl/arduino/pir_hall",
# middle="/tom/pir_middle",
# landing="/tom/pir_landing",
# lounge="/lounge/arduino/pir")
# light_props = dict(hall="/karl/arduino/light_hall",
# middle="/karl/arduino/light_landing",
# landing="/tom/servo",
# lounge="/lounge/lights/lounge",
# kitchen="/lounge/lights/kitchen")
# pir_activates = dict(
# hall="hall".split(),
# middle="middle landing".split(),
# landing="landing".split(),
# lounge="lounge kitchen".split()
# )
#
# shet /attic/lights/timer/on
# shet /bog/lights/timer/on
# shet /hall/lights/timer/on
#
# shet /landing/lights/timer/on
# shet /attic/lights/timer/on
#
# shet /lounge/lights_new/lounge/timer/on
# shet /lounge/lights_new/kitchen/timer/on
reactor.run()