Blagovest Petrov
10 months ago
commit
f4da646a07
1 changed files with 46 additions and 0 deletions
@ -0,0 +1,46 @@ |
|||||
|
import appuifw, e32 |
||||
|
import urllib |
||||
|
|
||||
|
class LampController: |
||||
|
def __init__(self): |
||||
|
self.script_lock = e32.Ao_lock() |
||||
|
self.main_menu_items = [u"Living Room", u"Exit"] |
||||
|
self.main_menu = appuifw.Listbox(self.main_menu_items, self.handle_main_selection) |
||||
|
self.sub_menu_items = [u"Lunichki on/off", u"Back"] |
||||
|
self.sub_menu = appuifw.Listbox(self.sub_menu_items, self.handle_sub_selection) |
||||
|
|
||||
|
def run(self): |
||||
|
appuifw.app.title = u"Lamp Control" |
||||
|
appuifw.app.body = self.main_menu |
||||
|
appuifw.app.exit_key_handler = self.exit_application |
||||
|
self.script_lock.wait() |
||||
|
|
||||
|
def handle_main_selection(self): |
||||
|
index = self.main_menu.current() |
||||
|
if index == len(self.main_menu_items) - 1: # Exit option |
||||
|
self.exit_application() |
||||
|
else: |
||||
|
appuifw.app.body = self.sub_menu |
||||
|
|
||||
|
def handle_sub_selection(self): |
||||
|
index = self.sub_menu.current() |
||||
|
if index == len(self.sub_menu_items) - 1: # Back option |
||||
|
appuifw.app.body = self.main_menu |
||||
|
elif index == 0: |
||||
|
self.lampa_hol() |
||||
|
|
||||
|
def lampa_hol(self): |
||||
|
data = '{"id":1, "method":"Switch.Set", "params":{"id":2, "on":false}}' |
||||
|
url = "http://relay1.home.blago.cloud/rpc" |
||||
|
try: |
||||
|
response = urllib.urlopen(url, data) |
||||
|
result = response.read() |
||||
|
appuifw.note(u"Lamp on/off triggered", "info") |
||||
|
except Exception, e: |
||||
|
appuifw.note(u"Error: " + str(e), "error") |
||||
|
|
||||
|
def exit_application(self): |
||||
|
self.script_lock.signal() |
||||
|
|
||||
|
if __name__ == '__main__': |
||||
|
LampController().run() |
Loading…
Reference in new issue