From 3fa080a795064c7181b007b107257b977d53b5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Tue, 20 Mar 2018 08:46:10 +0100 Subject: [PATCH] Add min and max price as attribute for Tibber sensor (#13313) --- homeassistant/components/sensor/tibber.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sensor/tibber.py b/homeassistant/components/sensor/tibber.py index 435003f76d0..aaaa8366909 100644 --- a/homeassistant/components/sensor/tibber.py +++ b/homeassistant/components/sensor/tibber.py @@ -73,14 +73,25 @@ class TibberSensor(Entity): return def _find_current_price(): + state = None + max_price = None + min_price = None for key, price_total in self._tibber_home.price_total.items(): price_time = dt_util.as_utc(dt_util.parse_datetime(key)) + price_total = round(price_total, 3) time_diff = (now - price_time).total_seconds()/60 if time_diff >= 0 and time_diff < 60: - self._state = round(price_total, 3) + state = price_total self._last_updated = key - return True - return False + if now.date() == price_time.date(): + if max_price is None or price_total > max_price: + max_price = price_total + if min_price is None or price_total < min_price: + min_price = price_total + self._state = state + self._device_state_attributes['max_price'] = max_price + self._device_state_attributes['min_price'] = min_price + return state is not None if _find_current_price(): return