コード例 #1
0
ファイル: house_status.py プロジェクト: EasyLinux/hassio
    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))
コード例 #2
0
ファイル: area.py プロジェクト: JanneS67/hassio
    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)
コード例 #3
0
ファイル: house_status.py プロジェクト: JanneS67/hassio
    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()))
コード例 #4
0
    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', {})