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_main = self.args['inputdate_alarmclock_main']
|
||||||
self.inputdate_alarmclock_secondary = self.args['inputdate_alarmclock_secondary']
|
self.inputdate_alarmclock_secondary = self.args['inputdate_alarmclock_secondary']
|
||||||
self.input_text_wakeup_time = self.args['input_text_wakeup_time']
|
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.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)
|
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.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.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)
|
#sensor_wakeup_datetime_entity = self.get_entity(self.sensor_wakeup_datetime)
|
||||||
#if not sensor_wakeup_datetime_entity.exists():
|
#if not sensor_wakeup_datetime_entity.exists():
|
||||||
# sensor_wakeup_datetime_entity.add()
|
# sensor_wakeup_datetime_entity.add()
|
||||||
|
|
||||||
self.calendar = list()
|
self.calendar = list()
|
||||||
self.refresh_cal()
|
self.refresh_cal()
|
||||||
|
self.update_workday_status()
|
||||||
|
|
||||||
self.update_wakeup_time()
|
self.update_wakeup_time()
|
||||||
|
|
||||||
@@ -151,9 +154,17 @@ class AlarmClock(SmartObject):
|
|||||||
self.update_wakeup_time()
|
self.update_wakeup_time()
|
||||||
|
|
||||||
def on_refresh_cal(self, kwargs):
|
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()
|
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):
|
def on_program_next_wakeup(self, kwargs):
|
||||||
self.handle_program_next_wakueup_cb = None
|
self.handle_program_next_wakueup_cb = None
|
||||||
|
|
||||||
@@ -329,5 +340,3 @@ class AlarmClock(SmartObject):
|
|||||||
|
|
||||||
def update_wakeup_time(self):
|
def update_wakeup_time(self):
|
||||||
self.register_callbacks(self.calculate_wakeup_time())
|
self.register_callbacks(self.calculate_wakeup_time())
|
||||||
|
|
||||||
|
|
||||||
@@ -175,10 +175,13 @@ alarm_clock:
|
|||||||
module: alarmclock
|
module: alarmclock
|
||||||
class: AlarmClock
|
class: AlarmClock
|
||||||
|
|
||||||
|
priority: 5
|
||||||
|
|
||||||
switch_alarmclock_main: input_boolean.main_alarmclock
|
switch_alarmclock_main: input_boolean.main_alarmclock
|
||||||
switch_alarmclock_secondary: input_boolean.secondary_alarmclock
|
switch_alarmclock_secondary: input_boolean.secondary_alarmclock
|
||||||
inputdate_alarmclock_main: input_datetime.main_alarmclock
|
inputdate_alarmclock_main: input_datetime.main_alarmclock
|
||||||
inputdate_alarmclock_secondary: input_datetime.secondary_alarmclock
|
inputdate_alarmclock_secondary: input_datetime.secondary_alarmclock
|
||||||
input_text_wakeup_time: input_text.wakeup_time
|
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