123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- def getCurrentState():
- 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' 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' 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' 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 ***********")
- 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)
- pyscript.handle_bedroom_light()
- @service
- def state_goto_window():
- task.unique('state_goto_py')
- cs = getCurrentState()
- log.info(f"********* WINDOW ***********")
- light.turn_off(entity_id='light.tradfri_bulb')
-
- 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 ***********")
- 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')
- 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 ***********")
- 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)
|