Added a workday sensor

This commit is contained in:
Pierre committed 2026-10-04 10:25:18 +02:00
1 parent aafc932818
commit 3562e14c4c
2 files changed
+15 -3

No files matched your search

+12 -3
View File
@@ -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())
+3
View File
@@ -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