|
@@ -1,4 +1,5 @@
|
|
|
|
|
|
+
|
|
|
def getCurrentState():
|
|
|
if( light.main_button_1 == 'on' and # All ON
|
|
|
light.main_button_2 == 'on' and
|
|
@@ -21,21 +22,21 @@ def getCurrentState():
|
|
|
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 ***********")
|
|
|
+ cs = getCurrentState()
|
|
|
+ log.info(f"********* ALL ON *********** State: " + str(cs) )
|
|
|
light.turn_on(entity_id='light.tradfri_bulb')
|
|
|
for x in range(2):
|
|
|
switch.turn_on(entity_id='switch.group_button_all')
|
|
|
- task.sleep(1)
|
|
|
+ task.sleep(1.0)
|
|
|
+
|
|
|
+ if light.liv_room_table_lamp == 'off':
|
|
|
+ light.turn_on(entity_id='light.liv_room_table_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
+ if light.liv_room_corner_lamp == 'off':
|
|
|
+ light.turn_on(entity_id='light.liv_room_corner_lamp')
|
|
|
|
|
|
pyscript.handle_bedroom_light()
|
|
|
|
|
@@ -44,7 +45,7 @@ def state_goto_all_on():
|
|
|
def state_goto_window():
|
|
|
task.unique('state_goto_py')
|
|
|
cs = getCurrentState()
|
|
|
- log.info(f"********* WINDOW ***********")
|
|
|
+ log.info(f"********* WINDOW *********** State: " + str(cs) )
|
|
|
light.turn_off(entity_id='light.tradfri_bulb')
|
|
|
|
|
|
if cs == 4 or cs == 2: # From Off or already Window
|
|
@@ -59,6 +60,10 @@ def state_goto_window():
|
|
|
for x in range(2):
|
|
|
switch.turn_off(entity_id='switch.group_button_all')
|
|
|
task.sleep(0.5)
|
|
|
+ light.turn_off(entity_id='light.liv_room_table_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
+ light.turn_off(entity_id='light.liv_room_corner_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
for x in range(2):
|
|
|
light.turn_on(entity_id=' light.main_button_4')
|
|
|
task.sleep(0.5)
|
|
@@ -69,33 +74,71 @@ def state_goto_window():
|
|
|
def state_goto_morning():
|
|
|
task.unique('state_goto_py')
|
|
|
cs = getCurrentState()
|
|
|
- log.info(f"********* MORNING ***********")
|
|
|
+ log.info(f"********* MORNING *********** State: " + str(cs) )
|
|
|
light.turn_off(entity_id='light.tradfri_bulb')
|
|
|
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')
|
|
|
+ light.turn_on(entity_id=' light.main_button_2')
|
|
|
+ task.sleep(0.5)
|
|
|
+ if light.liv_room_corner_lamp == 'off':
|
|
|
+ light.turn_on(entity_id='light.liv_room_corner_lamp')
|
|
|
elif cs == 2: # From Window
|
|
|
- light.turn_on(entity_id=' light.main_button_2')
|
|
|
+ for x in range(2):
|
|
|
+ light.turn_on(entity_id=' light.main_button_2')
|
|
|
+ task.sleep(0.5)
|
|
|
+ if light.liv_room_corner_lamp == 'off':
|
|
|
+ light.turn_on(entity_id='light.liv_room_corner_lamp')
|
|
|
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_2')
|
|
|
+ task.sleep(0.5)
|
|
|
light.turn_on(entity_id=' light.main_button_4')
|
|
|
task.sleep(0.5)
|
|
|
+ if light.liv_room_corner_lamp == 'off':
|
|
|
+ light.turn_on(entity_id='light.liv_room_corner_lamp')
|
|
|
|
|
|
pyscript.handle_bedroom_light()
|
|
|
|
|
|
@service
|
|
|
def state_goto_all_off():
|
|
|
task.unique('state_goto_py')
|
|
|
- log.info(f"********* ALL OFF ***********")
|
|
|
+ cs = getCurrentState()
|
|
|
+ log.info(f"********* ALL OFF *********** State: " + str(cs) )
|
|
|
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)
|
|
|
+ light.turn_off(entity_id='light.liv_room_table_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
+ light.turn_off(entity_id='light.liv_room_corner_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
+
|
|
|
+@state_trigger("input_boolean.movie_mode")
|
|
|
+def movie_mode_button_trigger():
|
|
|
+ cs = getCurrentState()
|
|
|
+ log.info(f"********* MOVIE MODE *********** To:" + input_boolean.movie_mode + " State: " + str(cs) )
|
|
|
+ if input_boolean.movie_mode == 'off' and switch.group_button_all == 'on':
|
|
|
+ log.info(f"Movie mode, turn lights ON")
|
|
|
+ if light.liv_room_table_lamp == 'off':
|
|
|
+ light.turn_on(entity_id='light.liv_room_table_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
+ if light.liv_room_corner_lamp == 'off':
|
|
|
+ light.turn_on(entity_id='light.liv_room_corner_lamp')
|
|
|
+
|
|
|
+ else:
|
|
|
+ log.info(f"Movie mode, turn lights OFF")
|
|
|
+ for x in range(2):
|
|
|
+ light.turn_off(entity_id='light.liv_room_table_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
+ light.turn_off(entity_id='light.liv_room_corner_lamp')
|
|
|
+ task.sleep(0.5)
|
|
|
+
|
|
|
+
|
|
|
|
|
|
+
|