From d1d11dfc5a2f5cb2e5b860bc89d977a73691ecd8 Mon Sep 17 00:00:00 2001 From: martin Date: Sat, 8 Mar 2025 17:05:07 +0100 Subject: [PATCH] added time trigger --- cpu_governor_auto_adjust.xml | 13 +++++++++++-- cpu_governor_auto_adjust/mapping.py | 5 +++-- cpu_governor_auto_adjust/triggers/__init__.py | 3 ++- cpu_governor_auto_adjust/triggers/time.py | 18 ++++++++++++++++++ pyproject.toml | 2 +- 5 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 cpu_governor_auto_adjust/triggers/time.py diff --git a/cpu_governor_auto_adjust.xml b/cpu_governor_auto_adjust.xml index a040e74..50be8d9 100644 --- a/cpu_governor_auto_adjust.xml +++ b/cpu_governor_auto_adjust.xml @@ -2,7 +2,7 @@ Debug true - conservative + powersave test_trigger1 @@ -30,6 +30,15 @@ /home/martin/dev/cpu_governor_auto_adjust/cpu_governor_auto_adjust/triggers/.data/token_file + + time + run_once + 5 + conservative + + 7:00 + 23:59 + + - 5 diff --git a/cpu_governor_auto_adjust/mapping.py b/cpu_governor_auto_adjust/mapping.py index 5ce3e59..ee2d6d5 100644 --- a/cpu_governor_auto_adjust/mapping.py +++ b/cpu_governor_auto_adjust/mapping.py @@ -1,9 +1,10 @@ from types import MappingProxyType -from cpu_governor_auto_adjust.triggers import TestTrigger1, TestTrigger2, RoonTrigger +from cpu_governor_auto_adjust.triggers import TestTrigger1, TestTrigger2, RoonTrigger, TimeTrigger _trigger_mapping = { 'test_trigger1': TestTrigger1, 'test_trigger2': TestTrigger2, - 'roon': RoonTrigger + 'roon': RoonTrigger, + 'time': TimeTrigger } trigger_mapping = MappingProxyType(_trigger_mapping) diff --git a/cpu_governor_auto_adjust/triggers/__init__.py b/cpu_governor_auto_adjust/triggers/__init__.py index 888b03d..f9e47ee 100644 --- a/cpu_governor_auto_adjust/triggers/__init__.py +++ b/cpu_governor_auto_adjust/triggers/__init__.py @@ -1,5 +1,6 @@ -__all__ = ["test_trigger1", "test_trigger2", "roon"] +__all__ = ["test_trigger1", "test_trigger2", "roon", "time"] from .test_trigger1 import TestTrigger1 from .test_trigger2 import TestTrigger2 from .roon import RoonTrigger +from .time import TimeTrigger diff --git a/cpu_governor_auto_adjust/triggers/time.py b/cpu_governor_auto_adjust/triggers/time.py new file mode 100644 index 0000000..8df52c2 --- /dev/null +++ b/cpu_governor_auto_adjust/triggers/time.py @@ -0,0 +1,18 @@ +from cpu_governor_auto_adjust.trigger import Trigger +from cpu_governor_auto_adjust.config import Config +from datetime import datetime, time + + +class TimeTrigger(Trigger): + def __init__(self, _config: Config) -> None: + super().__init__(_config) + + def start_time(self) -> time: + return datetime.strptime(self.config.custom_config['startTime'], '%H:%M').time() + + def end_time(self) -> time: + return datetime.strptime(self.config.custom_config['endTime'], '%H:%M').time() + + def run(self) -> None: + self.log.debug("start time: %s, end time: %s", self.start_time(), self.end_time()) + self.active = self.start_time() <= datetime.now().time() <= self.end_time() diff --git a/pyproject.toml b/pyproject.toml index c170e75..0b27847 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "cpu_governor_auto_adjust" -version = "0.1.30" +version = "0.1.31" description = "This application has been developed to automatically change cpu governor based on certain triggers." authors = [ { name = "Martin Reurekas", email = "martin@semrks.nl" }