Added a workday sensor
This commit is contained in:
1 parent
aafc932818
commit
3562e14c4c
2 files changed
+16
-4
No files matched your search
+12
-3
@@ -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())
|
||||
|
||||
|
||||
@@ -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
|
||||
sleeping_condition: binary_sensor.is_bedroom_sleeping
|
||||
Reference in new issue
Block a user