def __house_mode_change(self, entity: Union[str, dict], attribute: str, old: dict, new: dict, kwargs: dict) -> None: """called when house mode changes""" new_mode = HouseModes(new['state']).value old_mode = HouseModes(old['state']).value self._current_state = HouseModes(new_mode) self.fire_event(GlobalEvents.EV_HOUSE_MODE_CHANGED.value, old=old_mode, new=new_mode) self.log_to_logbook('House', "Ny state {}".format(new_mode))
def __on_house_home_changed(self, event_name: str, data: dict, kwargs: dict) -> None: newMode = HouseModes(data['new']) oldMode = HouseModes(data['old']) if newMode == HouseModes.day: self.on_housemode_day(oldMode) elif newMode == HouseModes.evening: self.on_housemode_evening(oldMode) elif newMode == HouseModes.night: self.on_housemode_night(oldMode) elif newMode == HouseModes.morning: self.on_housemode_morning(oldMode)
def initialize(self) -> None: """Initialize.""" super().initialize() self._current_state = HouseModes(self.get_state(self.HOUSE_MODE_SELECT)) self._offset_sunrise = int(self.properties.get('sunrise_offset', 0))*60 self._offset_sunset = int(self.properties.get('sunset_offset', 0))*60 self._early_night_time = self.parse_time(self.properties.get('early_night_time', datetime.time(hour=23))) self._late_night_time = self.parse_time(self.properties.get('late_night_time', datetime.time(minute=15))) self. _day_time = self.parse_time(self.properties.get('day_time', datetime.time(hour=10))) self._early_nights = self.args.get('early_nights', {}) self._late_nights = self.args.get('late_nights', {}) self.listen_state( self.__house_mode_change, self.HOUSE_MODE_SELECT, attribute='all', duration=10 ) # Set sunrise/sunset events self.run_at_sunrise(self.__on_sunrise, offset=self._offset_sunrise) self.run_at_sunset(self.__on_sunset, offset=self._offset_sunset ) # Set callback when it is nighttime on days when go to bed early self.run_on_days( self, self.__on_night_time, self._early_nights, self._early_night_time ) # Set callback when it is nighttime on days when go to bed late self.run_on_days( self, self.__on_night_time, self._late_nights, self._late_night_time ) # Set callback when it is nighttime on days when go to bed late self.run_daily( self.__on_day_time, self._day_time ) self.log("Setting early night-mode on {} at {}".format(self._early_nights, self._early_night_time)) self.log("Setting late night-mode on {} at {}".format(self._late_nights, self._late_night_time)) self.log("Setting day time at {}".format(self._day_time)) self.log("Next sunset is: {}".format(self.sunset())) self.log("Next sunrise is: {}".format(self.sunrise()))
def initialize(self) -> None: """Initialize.""" super().initialize() self._current_state = HouseModes(self.get_state( self.HOUSE_MODE_SELECT)) self._offset_sunrise = int(self.properties.get('sunrise_offset', 0)) * 60 self._offset_sunset = int(self.properties.get('sunset_offset', 0)) * 60 self._early_night_time = self.parse_time( self.properties.get('early_night_time', datetime.time(hour=23))) self._late_night_time = self.parse_time( self.properties.get('late_night_time', datetime.time(minute=15))) self._day_time = self.parse_time( self.properties.get('day_time', datetime.time(hour=10))) self._early_nights = self.args.get('early_nights', {}) self._late_nights = self.args.get('late_nights', {})