From c272d1ba2aa2f3d4a0520f58db3ab070b43427c0 Mon Sep 17 00:00:00 2001 From: avollkopf <43980694+avollkopf@users.noreply.github.com> Date: Fri, 25 Feb 2022 07:28:18 +0100 Subject: [PATCH] Fixed time format for timer and messages in case of longer steps --- cbpi/__init__.py | 2 +- cbpi/api/timer.py | 12 +++++++++--- cbpi/extension/FermentationStep/__init__.py | 6 ++++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/cbpi/__init__.py b/cbpi/__init__.py index 50c63d1..942c934 100644 --- a/cbpi/__init__.py +++ b/cbpi/__init__.py @@ -1 +1 @@ -__version__ = "4.0.2.0.a2" +__version__ = "4.0.2.0.a3" diff --git a/cbpi/api/timer.py b/cbpi/api/timer.py index a4b697c..2415c83 100644 --- a/cbpi/api/timer.py +++ b/cbpi/api/timer.py @@ -64,8 +64,14 @@ class Timer(object): @classmethod def format_time(cls, time): - pattern = '{0:02d}:{1:02d}:{2:02d}' + pattern_h = '{0:02d}:{1:02d}:{2:02d}' + pattern_d = '{0:02d}D {1:02d}:{2:02d}:{3:02d}' seconds = time % 60 minutes = math.floor(time / 60) % 60 - hours = math.floor(time / 3600) - return pattern.format(hours, minutes, seconds) + hours = math.floor(time / 3600) % 24 + days = math.floor(time / 86400) + if days != 0: + remaining_time = pattern_d.format(days, hours, minutes, seconds) + else: + remaining_time = pattern_h.format(hours, minutes, seconds) + return remaining_time diff --git a/cbpi/extension/FermentationStep/__init__.py b/cbpi/extension/FermentationStep/__init__.py index 06d36cf..bb7b051 100644 --- a/cbpi/extension/FermentationStep/__init__.py +++ b/cbpi/extension/FermentationStep/__init__.py @@ -155,6 +155,8 @@ class FermenterStep(CBPiFermentationStep): self.cbpi.notify(self.name, 'Timer started', NotificationType.INFO) self.timer.start() self.timer.is_running = True + estimated_completion_time = datetime.fromtimestamp(time.time()+ self.fermentationtime) + self.cbpi.notify(self.name, 'Timer started. Estimated completion: {}'.format(estimated_completion_time.strftime("%d.%m, %H:%M")), NotificationType.INFO) else: self.cbpi.notify(self.name, 'Timer is already running', NotificationType.WARNING) @@ -227,7 +229,7 @@ class FermenterStep(CBPiFermentationStep): self.timer.start() self.timer.is_running = True estimated_completion_time = datetime.fromtimestamp(time.time()+ self.fermentationtime) - self.cbpi.notify(self.name, 'Timer started. Estimated completion: {}'.format(estimated_completion_time.strftime("%H:%M")), NotificationType.INFO) + self.cbpi.notify(self.name, 'Timer started. Estimated completion: {}'.format(estimated_completion_time.strftime("%d.%m, %H:%M")), NotificationType.INFO) elif self.fermenter.target_temp <= self.starttemp: logging.info("cooldown") while self.running == True: @@ -237,7 +239,7 @@ class FermenterStep(CBPiFermentationStep): self.timer.start() self.timer.is_running = True estimated_completion_time = datetime.fromtimestamp(time.time()+ self.fermentationtime) - self.cbpi.notify(self.name, 'Timer started. Estimated completion: {}'.format(estimated_completion_time.strftime("%H:%M")), NotificationType.INFO) + self.cbpi.notify(self.name, 'Timer started. Estimated completion: {}'.format(estimated_completion_time.strftime("%d.%m, %H:%M")), NotificationType.INFO) return StepResult.DONE