|
@@ -1,56 +1,101 @@
|
|
|
|
|
|
-"""
|
|
|
def getCurrentState():
|
|
|
- if( light.main_button_1 == 'on' && ) # All ON
|
|
|
- light.main_button_2 == 'on' &&
|
|
|
- light.main_button_3 == 'on' &&
|
|
|
+ if( light.main_button_1 == 'on' and # All ON
|
|
|
+ light.main_button_2 == 'on' and
|
|
|
+ light.main_button_3 == 'on' and
|
|
|
light.main_button_4 == 'on' ):
|
|
|
return 1
|
|
|
- elif( light.main_button_1 == 'off' && ) # Window
|
|
|
- light.main_button_2 == 'off' &&
|
|
|
- light.main_button_3 == 'off' &&
|
|
|
+ elif( light.main_button_1 == 'off' and # Window
|
|
|
+ light.main_button_2 == 'off' and
|
|
|
+ light.main_button_3 == 'off' and
|
|
|
light.main_button_4 == 'on' ):
|
|
|
return 2
|
|
|
- elif( light.main_button_1 == 'off' && ) # Morning
|
|
|
- light.main_button_2 == 'on' &&
|
|
|
- light.main_button_3 == 'off' &&
|
|
|
+ elif( light.main_button_1 == 'off' and # Morning
|
|
|
+ light.main_button_2 == 'on' and
|
|
|
+ light.main_button_3 == 'off' and
|
|
|
light.main_button_4 == 'on' ):
|
|
|
return 3
|
|
|
- elif( light.main_button_1 == 'off' && ) # All OFF
|
|
|
- light.main_button_2 == 'off' &&
|
|
|
- light.main_button_3 == 'off' &&
|
|
|
+ elif( light.main_button_1 == 'off' and # All OFF
|
|
|
+ light.main_button_2 == 'off' and
|
|
|
+ light.main_button_3 == 'off' and
|
|
|
light.main_button_4 == 'off' ):
|
|
|
return 4
|
|
|
-"""
|
|
|
+
|
|
|
+# Important info:
|
|
|
+#
|
|
|
+# We are not allowed to resend buttons 1 and 2
|
|
|
+# 1: Glas bulb lamp in living room
|
|
|
+# 2: Corner lamp (IKEA-big-bulb) in living room
|
|
|
+# If ON is sent multiple times, then they will change DIM mode.
|
|
|
|
|
|
@service
|
|
|
def state_goto_all_on():
|
|
|
+ task.unique('state_goto_py')
|
|
|
log.info(f"********* ALL ON ***********")
|
|
|
- switch.turn_on(entity_id='switch.group_button_all')
|
|
|
light.turn_on(entity_id='light.tradfri_bulb')
|
|
|
- switch.turn_on(entity_id='switch.tradfri_outlet') # Sovrum ON
|
|
|
+ for x in range(2):
|
|
|
+ switch.turn_on(entity_id='switch.group_button_all')
|
|
|
+ task.sleep(1)
|
|
|
+
|
|
|
+ pyscript.handle_bedroom_light()
|
|
|
+
|
|
|
|
|
|
@service
|
|
|
def state_goto_window():
|
|
|
+ task.unique('state_goto_py')
|
|
|
+ cs = getCurrentState()
|
|
|
log.info(f"********* WINDOW ***********")
|
|
|
- switch.turn_off(entity_id='switch.group_button_all')
|
|
|
- light.turn_on(entity_id=' light.main_button_4')
|
|
|
light.turn_off(entity_id='light.tradfri_bulb')
|
|
|
- switch.turn_on(entity_id='switch.tradfri_outlet') # Sovrum ON
|
|
|
+
|
|
|
+ if cs == 4 or cs == 2: # From Off or already Window
|
|
|
+ for x in range(2):
|
|
|
+ light.turn_on(entity_id=' light.main_button_4')
|
|
|
+ task.sleep(0.5)
|
|
|
+ elif cs == 3: # From morning
|
|
|
+ for x in range(2):
|
|
|
+ light.turn_off(entity_id=' light.main_button_2')
|
|
|
+ task.sleep(0.5)
|
|
|
+ else: # From ALL ON
|
|
|
+ for x in range(2):
|
|
|
+ switch.turn_off(entity_id='switch.group_button_all')
|
|
|
+ task.sleep(0.5)
|
|
|
+ for x in range(2):
|
|
|
+ light.turn_on(entity_id=' light.main_button_4')
|
|
|
+ task.sleep(0.5)
|
|
|
+
|
|
|
+ pyscript.handle_bedroom_light()
|
|
|
|
|
|
@service
|
|
|
def state_goto_morning():
|
|
|
+ task.unique('state_goto_py')
|
|
|
+ cs = getCurrentState()
|
|
|
log.info(f"********* MORNING ***********")
|
|
|
- switch.turn_off(entity_id='switch.group_button_all')
|
|
|
- light.turn_on(entity_id=' light.main_button_2')
|
|
|
- light.turn_on(entity_id=' light.main_button_4')
|
|
|
light.turn_off(entity_id='light.tradfri_bulb')
|
|
|
- switch.turn_off(entity_id='switch.tradfri_outlet') # Sovrum OFF
|
|
|
+ if cs == 4 or cs == 3: # Off or already Morning
|
|
|
+ for x in range(2):
|
|
|
+ light.turn_on(entity_id=' light.main_button_4')
|
|
|
+ task.sleep(0.5)
|
|
|
+ light.turn_on(entity_id=' light.main_button_2')
|
|
|
+ elif cs == 2: # From Window
|
|
|
+ light.turn_on(entity_id=' light.main_button_2')
|
|
|
+ else: # From ALL ON
|
|
|
+ for x in range(2):
|
|
|
+ switch.turn_off(entity_id='switch.group_button_all')
|
|
|
+ task.sleep(0.5)
|
|
|
+ light.turn_on(entity_id=' light.main_button_2')
|
|
|
+ for x in range(2):
|
|
|
+ light.turn_on(entity_id=' light.main_button_4')
|
|
|
+ task.sleep(0.5)
|
|
|
+
|
|
|
+ pyscript.handle_bedroom_light()
|
|
|
|
|
|
@service
|
|
|
def state_goto_all_off():
|
|
|
+ task.unique('state_goto_py')
|
|
|
log.info(f"********* ALL OFF ***********")
|
|
|
- switch.turn_off(entity_id='switch.group_button_all')
|
|
|
light.turn_off(entity_id='light.tradfri_bulb')
|
|
|
switch.turn_off(entity_id='switch.tradfri_outlet') # Sovrum OFF
|
|
|
+ for x in range(2):
|
|
|
+ switch.turn_off(entity_id='switch.group_button_all')
|
|
|
+ task.sleep(0.5)
|
|
|
|