diff --git a/apps/alarmclock.py b/apps/alarmclock.py index 253a8c6..dfd9a4d 100644 --- a/apps/alarmclock.py +++ b/apps/alarmclock.py @@ -38,6 +38,7 @@ class AlarmClock(SmartObject): self.inputdate_alarmclock_main = self.args['inputdate_alarmclock_main'] self.inputdate_alarmclock_secondary = self.args['inputdate_alarmclock_secondary'] self.input_text_wakeup_time = self.args['input_text_wakeup_time'] + self.output_workday_sensor = self.args['output_workday_sensor'] #self.sensor_wakeup_datetime = self.args['sensor_wakeup_datetime'] self.sleeping_condition = SmartCondition.Evaluator(self, self.args['sleeping_condition'], condition_name="sleeping_condition", constants=self.constants, templates_library=self.templates_library) @@ -54,12 +55,14 @@ class AlarmClock(SmartObject): self.run_hourly(self.on_refresh_cal,datetime.time(0, 0, 0)) self.sensor_wakeup_datetime_entity = self.create_entity("sensor.wakeup_datetime", icon="mdi:alarm") + self.workday_entity = self.create_entity(self.output_workday_sensor, icon="mdi:briefcase-check") #sensor_wakeup_datetime_entity = self.get_entity(self.sensor_wakeup_datetime) #if not sensor_wakeup_datetime_entity.exists(): # sensor_wakeup_datetime_entity.add() self.calendar = list() self.refresh_cal() + self.update_workday_status() self.update_wakeup_time() @@ -151,9 +154,17 @@ class AlarmClock(SmartObject): self.update_wakeup_time() def on_refresh_cal(self, kwargs): - if self.refresh_cal(): + calendar_changed = self.refresh_cal() + self.update_workday_status() + if calendar_changed: self.update_wakeup_time() + def update_workday_status(self): + is_workday = self.is_wakeup_time_on_a_working_day(datetime.datetime.now()) + new_state = "on" if is_workday else "off" + if self.workday_entity.get_state() != new_state: + self.workday_entity.set_state(state=new_state) + def on_program_next_wakeup(self, kwargs): self.handle_program_next_wakueup_cb = None @@ -329,5 +340,3 @@ class AlarmClock(SmartObject): def update_wakeup_time(self): self.register_callbacks(self.calculate_wakeup_time()) - - \ No newline at end of file diff --git a/apps/rooms/bedroom.yaml b/apps/rooms/bedroom.yaml index 0ac0bfb..26ce44e 100644 --- a/apps/rooms/bedroom.yaml +++ b/apps/rooms/bedroom.yaml @@ -175,10 +175,13 @@ alarm_clock: module: alarmclock class: AlarmClock + priority: 5 + switch_alarmclock_main: input_boolean.main_alarmclock switch_alarmclock_secondary: input_boolean.secondary_alarmclock inputdate_alarmclock_main: input_datetime.main_alarmclock inputdate_alarmclock_secondary: input_datetime.secondary_alarmclock input_text_wakeup_time: input_text.wakeup_time + output_workday_sensor: binary_sensor.pierre_workday - sleeping_condition: binary_sensor.is_bedroom_sleeping \ No newline at end of file + sleeping_condition: binary_sensor.is_bedroom_sleeping