-
Notifications
You must be signed in to change notification settings - Fork 0
/
control_hue_lights.py
64 lines (50 loc) · 1.74 KB
/
control_hue_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
import requests
import json
from time import sleep
def get_lights(api_root_url):
lights = requests.get(api_root_url + 'lights').json()
light_id_list = []
for light_id, light_info in lights.items():
light_id_list.append(light_id)
print('Light id: {} - Light name: {}'.format(light_id, light_info["name"]))
return light_id_list
def get_light_info(api_light_url):
return requests.get(api_light_url).json()
def set_state(api_light_url, state):
return requests.put('{}/state'.format(api_light_url), json.dumps(state))
def turn_on(api_light_url):
state = {'on': True}
return set_state(api_light_url, state)
def turn_off(api_light_url):
state = {'on': False}
return set_state(api_light_url, state)
# def test_effect(light_id):
# for x in range(0, 10):
# for y in range(0,10):
# set_state(light_id, {'xy': [x/10, y/10]})
# sleep(0.1)
#
# def add_device(light_id):
# # get light info from Hue API
# light_info = get_light_info(light_id)
# # use data to add new device
# device = {
# 'device_id': light_id,
# 'device_name': light_info['name'],
# 'device_type': light_info['type'],
# 'device_controller_address': base_api_address + light_id,
# 'device_data': light_info['state']
# }
# return requests.post('http://localhost:5000/devices', json=device)
if __name__ == '__main__':
print('main')
# light_id_list = get_lights()
# for light_id in light_id_list:
# print(add_device(light_id))
#
#turn_off(light_id)
#sleep(3)
#for light_id in light_id_list:
# turn_on(light_id)
# print(set_state(light_id, {'xy': [0, 0], 'sat': 254, 'bri': 254}).text)
# test_effect(3)